Android(安卓)跨应用调用Activity及Service
16lz
2021-01-24
如何调用另外一个app应用的activity或者service,本文提供一个验证可行的方法。
调用方法:
Intent intent=new Intent("youActionName"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addCategory(Intent.CATEGORY_DEFAULT); intent.putExtra("type",inType); //if needed ComponentName cn=new ComponentName("applicationPackageName","packagename+classname"); intent.setComponent(cn); startActivity(intent);
在被调用的App里面需要定义 class (activity 或 service)属性和filter。需要明确的几点
如果不是action.Main,则需要主动申明Android:exported="true",允许外部访问
action name 要一致
category name要一致,如果调用的地方没有明确声明,被调用的地方要声明DEFAULT
<activity android:name=".pbap.BluetoothPbapLuancherActivity" android:label="Bluetooth" android:exported="true" android:process="@string/process"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
更多相关文章
- Android(安卓)解决方法数 65536 (65k) 限制
- android thread Interrupte使用方法
- android window.requestWindowFeature()常用方法(转)
- Android(安卓)Studio 用 JNI 实现与原生代码通信
- the bind value at index 2 is null
- android asset中 zip包解压sdcard
- android中webviewjs与java的相互调用
- Android隐藏标题栏的四种方法
- Android(安卓)menu使用