在广播 URI 中强制执行权限
你可以在向注册的广播接收器发送意图时进行权限检查。你发送的权限将与在标记下注册的权限进行交叉检查。它们限制谁可以向相关接收者发送广播。
要发送具有权限的广播请求,请在 Context.sendBroadcast(Intent intent, String permission)
调用中将权限指定为字符串,但请记住,接收方的应用必须具有该权限才能接收你的广播。应首先在发件人之前安装接收器。
方法签名是:
void sendBroadcast (Intent intent, String receiverPermission)
//for example to send a broadcast to Bcastreceiver receiver
Intent broadcast = new Intent(this, Bcastreceiver.class);
sendBroadcast(broadcast, "org.quadcore.mypermission");
并且你可以在清单中指定广播发送者需要包含通过 sendBroadcast 发送的请求权限:
<!-- Your special permission -->
<permission android:name="org.quadcore.mypermission"
android:label="my_permission"
android:protectionLevel="dangerous"></permission>
还声明应该接收此广播的应用程序清单中的权限:
<!-- I use the permission ! -->
<uses-permission android:name="org.quadcore.mypermission"/>
<!-- along with the receiver -->
<receiver android:name="Bcastreceiver" android:exported="true" />
注意: 接收方和广播公司都可以要求许可,当发生这种情况时,必须通过两个权限检查才能将意图传递给关联目标。应首先安装定义权限的应用程序。
在此处查找有关权限的完整文档。