如何調用另外一個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>