安卓:开机接收方:导出的接收方不需要权限

我创建了一个 ,它接收 .BroadcastReceiverBOOT_COMPLETED

在我的书中,我这样添加它:AndroidManifest.xml

<receiver
    android:name=".OnBootReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" /> 
        <action android:name="android.intent.action.QUICKBOOT_POWERON" />
    </intent-filter>
</receiver>

但是,我收到警告:导出的接收器不需要权限。我已经在SO上读到过它,但我并不完全理解它。

所以有人可以向这个初学者解释:)为什么我会收到这个警告,以及该如何应对(以及为什么)?


答案 1

警告

导出的接收器不需要权限

意味着,您有一个具有某些操作的意图过滤器(这意味着默认情况下您已经设置,它现在可以接收来自应用程序外部的任何广播公司的广播)由于它可以接收来自应用程序外部的任何广播公司的广播,因此它通过说“嘿,您确定任何广播公司都可以调用您吗?在我看来,最好只允许那些广播公司调用您通过android:permission为该接收器设置的权限android:exported="true""

希望这很清楚!!!


答案 2

您可以通过添加到接收器标记来删除此警告(请参阅此答案:https://stackoverflow.com/a/11526028/757073android:exported="false")


推荐