在广播 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" />

注意: 接收方和广播公司都可以要求许可,当发生这种情况时,必须通过两个权限检查才能将意图传递给关联目标。应首先安装定义权限的应用程序。

此处查找有关权限的完整文档。