注册

Android 在一个APP里打开另一个APP

前言


不知道你们有没有注意过,每次打开一些软件的时候都会有广告引导页,有时候手滑点到了,会有进入手机上的另一个APP,这有没有引起你的注意呢?


运行效果图


在这里插入图片描述


# 正文
为了测试这个功能,首先要创建两个项目,然后运行起来都安装在你的手机上,这里为了方便了解,取名就是应用A和应用B,流程就是A应用里面打开B应用。

首先当然是创建项目了


DemoA


在这里插入图片描述


DemoB


在这里插入图片描述


创建好之后,别的先不管,都在手机上安装一下再说


在这里插入图片描述


① 打开另一个APP


接下来在DemoA的MainActivity里面写一个按钮,用于点击之后打开DemoB应用

	<Button
android:id="@+id/btn_open_b"
android:text="打开DemoB"
android:textAllCaps="false"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

在这里插入图片描述


也在DemoB的布局文件改一下显示内容

<TextView
android:textSize="18sp"
android:textColor="#000"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="DemoB" />

运行一下


在这里插入图片描述


这样就打开了。那假如我要传递数据到DemoB呢?


② 数据传递


传数据其实就跟平时单个APP内部不同页面传数据类似,也是用Intent


在这里插入图片描述


然后在另一个APP里面接收并显示出来。现在先修改一下DemoB的布局,增加一个TextView用来显示接收的内容。

<TextView
android:id="@+id/tv_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:textColor="#000"
android:textSize="16sp" />

DemoB的MainActivity里


在这里插入图片描述


一旦两个应用程序里面改动了代码你就要在手机上运行一下,否则你改动的代码就不会生效


然后运行一下:


在这里插入图片描述


传值的问题就解决了。


③ 打开指定页面


通过包名跳转APP是进入默认的启动页面,你可以打开你的AndroidManifest.xml文件查看


在这里插入图片描述


那个Activity下面有这个默认启动就是那个

            <intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

至于要打开指定的页面有两个方法


1.通过包名、类名


首先在DemoB的下面再创建一个TestActivity,简单加一个TextView


在这里插入图片描述


在这里插入图片描述


因为是要DemoB的TestActivity页面,所以这个activity在AndroidManifest.xml中需要配置


android:exported 属性,布尔类型,是否支持其他应用访问目标 Activity,默认值为 true;android:exported="true"


否则你跳转会报错的,现在运行DemoB,使改动的代码生效
然后修改DemoA里面MainActivity的代码


在这里插入图片描述


运行效果


在这里插入图片描述


这样就可以了。


2.通过Action


修改DemoB的AndroidManifest.xml


在这里插入图片描述


然后运行在手机上,再修改DemoA的MainActivity


在这里插入图片描述


运行效果


在这里插入图片描述


其实还有一种方式是通过URL打开另一个APP,但是我不推荐这样做,为什么?没有原因...


作者:初学者_Study
链接:https://juejin.cn/post/7229498604367904828
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

0 个评论

要回复文章请先登录注册