【问题标题】:How to Set BroadcastReceiver Permissions (Security)如何设置 BroadcastReceiver 权限(安全)
【发布时间】:2015-01-30 05:43:08
【问题描述】:

所以我有 2 个应用程序 - A 和 B。

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

那么我需要做什么才能让 B 向 A 发送广播?在 B 的清单中,我指定了 uses-permission 标签,并将 android:name 设置为与接收者的 android:permission 相同的字符串 (com.example.app.SEND),但广播仍然不会从 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" />

【问题讨论】:

  • 据我所知,Broadcast 适用于不依赖权限的操作,但是如果您使用任何需要权限的操作,您可能必须添加权限。
  • 这里指的是Security部分。

标签: android security broadcastreceiver android-broadcast android-permissions


【解决方案1】:

所以我想在 B 的清单中为相同的字符串设置一个自定义权限:

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

非常简单明了。只需要通过网络阅读一些内容。

【讨论】:

    【解决方案2】:

    从 B 创建一个意图并将操作设置为您的广播接收器名称。

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

    从技术上讲,这应该会击中您的接收器。

    【讨论】:

    • 我认为您在谈论操作,而我正在尝试了解如何施加权限。我指的是这里的Security 部分。
    • 只有接收者知道它可以处理什么才需要权限。就功能而言,如果不设置动作,广播接收器永远不会出现在图片中。
    • 基本上我想根据安全指南施加一定的限制,并非所有应用程序都可以访问接收器。我也更新了问题。
    猜你喜欢
    • 2012-03-08
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    相关资源
    最近更新 更多