Java Android广播-使用权限发送和接收

Java Android广播-使用权限发送和接收,java,android,android-permissions,android-broadcast,android-broadcastreceiver,Java,Android,Android Permissions,Android Broadcast,Android Broadcastreceiver,我尝试实现BroadcastReceiver的权限方法 在sender类中,我尝试发送正常广播 Intent intent = new Intent(); intent.setAction("com.vn.BroadcastReceiver"); intent.putExtra("Foo", "Bar"); sendBroadcast(intent); Intent intent = new Intent(); intent.setAction("com.vn.

我尝试实现
BroadcastReceiver
的权限方法

sender类中,我尝试发送正常广播

    Intent intent = new Intent();
    intent.setAction("com.vn.BroadcastReceiver");
    intent.putExtra("Foo", "Bar");
    sendBroadcast(intent);
Intent intent = new Intent();
intent.setAction("com.vn.BroadcastReceiver");
intent.putExtra("Foo", "Bar");
sendBroadcast(intent, "com.nhp");
使用
AndroidManifest
文件

    <uses-permission android:name="com.nhp"/>
及其
AndroidManifest

    <permission android:name="com.nhp" />

    <receiver
        android:permission="com.nhp"
        android:exported="true"
        android:name=".receivers.FirstBroadcastReceiver">
        <intent-filter>
            <action android:name="com.vn.BroadcastReceiver" />
        </intent-filter>
    </receiver>

我首先安装接收器应用程序,然后安装发送器。成功了


但是当我尝试调用sendBroadcast(intent,“com.nhp”),它不会触发任何东西。谁能为我解释一下原因?谢谢

应在发件人中声明自定义权限,收件人应请求该权限

此外,广播接收器不需要
android:permission
属性。只有当发件人必须具有特定权限时,才应使用它


发送方

发件人在其清单中声明自定义权限

<permission android:name="com.nhp" />
接收器

接收方在其清单中请求自定义权限并侦听广播

<uses-permission android:name="com.nhp"/>
...
...
...
<receiver
    android:exported="true"
    android:name=".receivers.FirstBroadcastReceiver">
    <intent-filter>
        <action android:name="com.vn.BroadcastReceiver" />
    </intent-filter>
</receiver>

...
...
...
并且必须首先安装发件人应用程序,因为它定义了自定义权限

注意:安装应用程序时会注册自定义权限。定义自定义权限的应用程序必须在使用它的应用程序之前安装


伟大的非常感谢。
<uses-permission android:name="com.nhp"/>
...
...
...
<receiver
    android:exported="true"
    android:name=".receivers.FirstBroadcastReceiver">
    <intent-filter>
        <action android:name="com.vn.BroadcastReceiver" />
    </intent-filter>
</receiver>