跨应用发送和接收广播,与同应用下的情况差不多,只需要添加一个权限,以及配置一下receiver的android:process属性即可
发送广播的应用中:
- Intent intent = new Intent("info.zhegui.receiver.interprocess");
- sendBroadcast(intent);
注意要在manifest.xml添加接收广播的权限,这个权限是receiver自定义的
- <uses-permission android:name="info.zhegui.receiver.RECEIVE"/>
接收广播的应用中:
- public class MyReceiver extends BroadcastReceiver {
- private final String TAG = this.getClass().getName();
- @Override
- public void onReceive(Context content, Intent intent) {
- Log.i(TAG, "intent:" + intent);
- }
- }
在manifest.xml中添加自定义权限,以及配置receiver的几个属性
<permission android:name="info.zhegui.receiver.RECEIVE" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <receiver android:name="info.zhegui.receiver.MyReceiver" android:exported="true" android:process=":remote" > <intent-filter> <action android:name="info.zhegui.receiver.interprocess" /> </intent-filter> </receiver> </application>
需要注意的三个地方:
1,自定义权限
2,android:exported="true"
3,android:process=":remote" (有时候可以不要该属性)
动态注册也是可能的。
参考文档:
http://developer.android.com/guide/topics/manifest/receiver-element.html
http://developer.android.com/training/articles/security-tips.html