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消息
        <receiver android:name=".custom.permission.DeclaredPermissionBroadcastReceiver"
            android:permission="com.hyman.demo.android.broadcast.permission.PERMISSION_PERMISSION"
        >
            <intent-filter>
                    <action android:name="com.hyman.demo.android.broadcast.permission.PERMISSION_ACTION"></action>
            </intent-filter>
        </receiver>

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

 

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

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

<permission
         android:name="com.hyman.demo.android.broadcast.permission.PERMISSION_PERMISSION" >
     </permission>
    <uses-permission android:name="com.hyman.demo.android.broadcast.permission.PERMISSION_PERMISSION"></uses-permission>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值