如何让自己的广播只让指定的 app 接收?

1、自己的应用(假设名称为应用 A)在发送广播的时候给自己发送的广播添加自定义权限,假设权限名为:
com.itheima.android.permission , 然后需要在应用 A 的 AndroidManifest.xml 中声明如下权限:

<permission android:name="com.itheima.android.permission"
android:protectionLevel="normal"></permission>
<uses-permission android:name="com.itheima.android.permission"/>

2、 其他应用(假设名称诶应用 B)如果想接收该广播,那么就必须知道应用 A 广播使用的权限。然后在应用 B
的清单文件中如下配置:

<uses-permission android:name="com.itheima.android.permission"/>

或者在应用 AndroidManifest.xml 中的<receiver>标签中进行如下配置:

<receiver android:name="com.itheima.android.broadcastReceiver.MyReceiver"
android:permission="com.itheima.android.permission">
<intent-filter >
<action android:name="com.itheima.mybroadcast"></action>
</intent-filter>
</receiver>

每个权限通过 protectionLevel 来标识保护级别:

  1. normal : 低 风 险 权 限 , 只 要 申 请 了 就 可 以 使 用 ( 在 AndroidManifest.xml 中 添 加
<uses-permission>标签),安装时不需要用户确认;
  2. dangerous:高风险权限,安装时需要用户的确认才可使用;
  3. signature:只有当申请权限的应用程序的数字签名与声明此权限的应用程序的数字签名相同时(如
果是申请系统权限,则需要与系统签名相同),才能将权限授给它;
  3. signatureOrSystem:签名相同,或者申请权限的应用为系统应用(在 system image 中)。
上述四类权限级别同样可用于自定义权限中。如果开发者需要对自己的应用程序(或部分应用)进
行访问控制,则可以通过在 AndroidManifest.xml 中添加<permission>标签,将其属性中的
protectionLevel 设置为上述四类级别中的某一种来实现

转载于:https://www.cnblogs.com/androidsuperman/p/6363510.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值