1

所以我有2个应用程序 - A和B.如何设置BroadcastReceiver权限(安全)

在我有一个BroadcastReceiver。在receiver标记(清单文件)中,我指定了一个android:permission字符串(比如说com.example.app.SEND)。现在B不能再向A发送广播了。说得通!

那么为了让B发送广播给A,我需要做些什么?在B的清单,我指定uses-permission标签与android:name设置为相同的字符串(com.example.app.SEND)作为接收器的android:permission但仍广播不会去从B到A

我在做什么错?或者还有其他需要完成的事情吗?

- 更新 -

这里是我的应用程序A的接收器标签:

<receiver 
     android:name="com.example.app.MyReceiver" 
     android:enabled="true" 
     android:exported="true" 
     android:permission="com.example.BReceiver.SEND" > 
     <intent-filter> 
      <action android:name="com.example.BReceiver" /> 
     </intent-filter> 
    </receiver> 

下面是从我的B的清单中uses-permission标签:

<uses-permission android:name="com.pycitup.BReceiver.SEND" /> 
+0

据我所知广播的作用不是在权限上,而是如果您使用任何需要权限的操作,您可能必须添加权限。 – EEJ 2014-12-02 04:12:57

+0

我指的是这里的[Security](http://developer.android.com/reference/android/content/BroadcastReceiver.html#Security)部分。 – user1437328 2014-12-02 04:25:14

回答

4

所以我设置为B的清单相同的字符串像这样的自定义权限:

<permission android:name="com.pycitup.BReceiver.SEND" /> 

是相当直接的,简单的。只需要在网上阅读一下。

0

从b创建的意图和将操作设置为您的广播接收者名称。

Intent myintentB=new Intent(); 
myintentB.setAction("com.example.app.SEND"); 
sendBroadcast(myintentB); 

这应该在技术上打你的接收器。

+0

我认为你在谈论行动,而我试图了解如何施加权限。我指的是这里的[Security](http://developer.android.com/reference/android/content/BroadcastReceiver.html#Security)部分。 – user1437328 2014-12-02 04:24:54

+0

仅当接收者知道它可以处理什么时才需要权限。就功能而言,如果不设置动作,广播接收器将永远不会处于画面中。 – archon92 2014-12-02 04:28:56

+0

基本上我想强制一些限制,根据安全指南,并非所有的应用程序都可以访问接收器。我也更新了这个问题。 – user1437328 2014-12-02 05:58:51