现在的位置: 首页 > 综合 > 正文

跨应用发送和接收广播

2017年07月26日 ⁄ 综合 ⁄ 共 1408字 ⁄ 字号 评论关闭

跨应用发送和接收广播,与同应用下的情况差不多,只需要添加一个权限,以及配置一下receiver的android:process属性即可

 

 

发送广播的应用中:

 

Java代码  收藏代码
  1. Intent intent = new Intent("info.zhegui.receiver.interprocess");  
  2. sendBroadcast(intent);  

 注意要在manifest.xml添加接收广播的权限,这个权限是receiver自定义的

Java代码  收藏代码
  1. <uses-permission android:name="info.zhegui.receiver.RECEIVE"/>  

 

接收广播的应用中:

Java代码  收藏代码
  1. public class MyReceiver extends BroadcastReceiver {  
  2.     private final String TAG = this.getClass().getName();  
  3.   
  4.     @Override  
  5.     public void onReceive(Context content, Intent intent) {  
  6.         Log.i(TAG, "intent:" + intent);  
  7.     }  
  8.   
  9. }  

 在manifest.xml中添加自定义权限,以及配置receiver的几个属性

Java代码  收藏代码
  1. <permission android:name="info.zhegui.receiver.RECEIVE" />  
  2.   
  3. <application  
  4.     android:allowBackup="true"  
  5.     android:icon="@drawable/ic_launcher"  
  6.     android:label="@string/app_name"  
  7.     android:theme="@style/AppTheme" >  
  8.     <receiver  
  9.         android:name="info.zhegui.receiver.MyReceiver"  
  10.         android:exported="true"  
  11.         android:permission="info.zhegui.receiver.RECEIVE"  
  12.         android:process=":remote" >  
  13.         <intent-filter>  
  14.             <action android:name="info.zhegui.receiver.interprocess" />  
  15.         </intent-filter>  
  16.     </receiver>  
  17. </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

抱歉!评论已关闭.