Sender:sender是否具有某种Permission与所处的Package申明有关,与sendBroadcast方法是相互独立的。sendBroadcast可以要求接受方需要具备什么Permission。

Receiver: receive是否具有某种Permission与所处的Package申明有关, 与registerReceiver方法是相互独立的。registerReicerver可以要求发送方需要具备什么Permission。

 

  Package In Permission In Permission No permission No permission
Package Receiver\sendBroadcast Send not require P Send require P Send not require P Send require P
In Permission Declared require P onReceive onReceive Permission Denial: broadcasting Intent Permission Denial: broadcasting Intent
In Permission Declared not require P onReceive onReceive onReceive onReceive
In Permission Dynamic require P onReceive onReceive Permission Denial: broadcasting Intent Permission Denial: broadcasting Intent
In Permission Dynamic not require P onReceive onReceive onReceive onReceive
No Permission Declared require P onReceive Permission Denial: receiving Intent Permission Denial: broadcasting Intent

Permission Denial: broadcasting Intent

Permission Denial: receiving Intent

No Permission Declared not require P onReceive Permission Denial: receiving Intent onReceive Permission Denial: receiving Intent
No Permission Dynamic require P onReceive Permission Denial: receiving Intent Permission Denial: broadcasting Intent

Permission Denial: broadcasting Intent

Permission Denial: receiving Intent

No Permission Dynamic not require P onReceive Permission Denial: receiving Intent onReceive Permission Denial: receiving Intent

Receiver是Declared或Dynamic的对结果并无影响。上述表格可以简化为


 
Package In Permission In Permission No permission No permission
Package Receiver\sendBroadcast Send not require P Send require P Send not require P Send require P
In Permission require P onReceive onReceive Permission Denial: broadcasting Intent Permission Denial: broadcasting Intent
In Permission not require P onReceive onReceive onReceive onReceive
No Permission require P onReceive Permission Denial: receiving Intent Permission Denial: broadcasting Intent

Permission Denial: broadcasting Intent

Permission Denial: receiving Intent

No Permission not require P onReceive Permission Denial: receiving Intent onReceive Permission Denial: receiving Intent

 

!. receiver 的 android:permission 属性,表示该receiver只接受具有相应权限的Package的Broadcast消息
                    android:permission="com.hyman.demo.android.broadcast.permission.PERMISSION_PERMISSION"
        >
           
                   
           

       

2. registerReceiver(receiver, intentFilter, PERMISSION, null); 表示该receiver只接受具有相应权限的Package的Broadcast消息

 

3. sendBroadcast(intent, PERMISSION);表示只有具有相应权限的Package才能接受其所发送的Broadcast消息。

4. ※注意双声明权限 此处与activity声明权限不同 。Package要求某自定义权限时,需要同时使用 Tag 和 Tag

         android:name="com.hyman.demo.android.broadcast.permission.PERMISSION_PERMISSION" >
    
    

更多相关文章

  1. uses-permission 与 android:maxSdkVersion
  2. android framework之旅(四)去除Usb权限弹窗
  3. Android常用代码之APK root权限静默安装
  4. Android实现倒计时跳转Activity
  5. 解决unity 打包在Android(安卓)8.0上启动出现黑屏问题(Android权
  6. android 6.0 动态权限解决方案
  7. 字节跳动面试官:Android源码的Binder权限是如何控制?
  8. Android(安卓)消息推送通知指南
  9. android系统学习笔记八

随机推荐

  1. Android(安卓)RxJava锛氭渶鍩虹鐨勬搷
  2. 銆奞t on Android鏍稿績缂栫▼銆嬪嫎璇?/
  3. Android如何集成Vitamio
  4. Android(安卓)澶氫釜APK鍏变韩鏁版嵁(Sha
  5. 手把手教你在CTS中编写自己的测试模块
  6. 详解Android单元测试最佳实践
  7. 【Android解决方案】GridView第一次选中
  8. 第四课:android数据相关---sharedPreferen
  9. android手把手教你开发launcher(五)——设
  10. 教你修改eclipse创建android project时默