Android 跨应用调用Activity

调用方法:

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>  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3987c43e6e1ed02be4780f85c4afa1d9.html