背景:有时候我们需要在自己的应用中去打开其他应用程序的Activity或者Service ,下面是通过两种方式打开 ,为什么是两种方式呢? 我们本来可以直接开启其他应用程序的,为什么要在转个弯通过广播去开启,答案很简单,因为项目所需,哈哈
一: 通过广播开启其他应用程序开启其他应用程序的Service
注意事项:
一:ComponentName的参数定义
ComponentName componentName=new ComponentName("com.liu.testdemo","com.liu.testdemo.TextBroadcastReceiver");
1:第一个参数定义:
根据打开的组件所在的位置来确定
如果打开的组件不在根包名下,那么第一个参数就是应用程序的包名,而不是组件所 在的包名且需要在打开的组件中添加android:exported="true"
如果打开的组件是在根包名下 那么第一个参数就是应用程序的包名,此时也不需要在 打开的组件中添加android:exported="true"
2:第二个参数定义:
所要打开的组件的绝对路径
例如:
你在包com.liu.testdemo 下创建了TextBroadcastReceiver,
且需要添加android:exported="true"
二:android:exported="true"的添加
作用:设置要打开的组件可以被其他应用程序调用
demo下载链接 点击打开链接