Android(安卓)BroadcastReceiver 学习笔记
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消息
>
2. registerReceiver(receiver, intentFilter, PERMISSION, null); 表示该receiver只接受具有相应权限的Package的Broadcast消息
3. sendBroadcast(intent, PERMISSION);表示只有具有相应权限的Package才能接受其所发送的Broadcast消息。
4. ※注意双声明权限 此处与activity声明权限不同 。Package要求某自定义权限时,需要同时使用
更多相关文章
- uses-permission 与 android:maxSdkVersion
- android framework之旅(四)去除Usb权限弹窗
- Android常用代码之APK root权限静默安装
- Android实现倒计时跳转Activity
- 解决unity 打包在Android(安卓)8.0上启动出现黑屏问题(Android权
- android 6.0 动态权限解决方案
- 字节跳动面试官:Android源码的Binder权限是如何控制?
- Android(安卓)消息推送通知指南
- android系统学习笔记八