Android:OnBootReceiver:导出的接收器不需要许可

时间:2012-11-22 16:54:05

标签: java android broadcastreceiver android-manifest bootcompleted

我创建了BroadcastReceiver,收到BOOT_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上阅读了它,但我并不完全理解它。

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

2 个答案:

答案 0 :(得分:8)

警告

  

导出的接收器不需要许可

手段, 您有一个带有某些操作的intent-filter(默认情况下,您设置了android:exported="true",现在可以从应用程序之外的 ANY 广播中接收广播 由于它可以从您应用程序之外的 ANY 广播机构接收广播,它会通过说“嘿,您确定 ANY 广播机构可以调用您来警告您吗?在我看来,它是更好的情况是,只允许那些广播公司通过 android:permission

调用具有您为此接收者设置的权限的用户

希望这很清楚!!!

答案 1 :(得分:5)

您可以通过将android:exported="false"添加到接收者代码来删除此警告(请参阅此回答:https://stackoverflow.com/a/11526028/757073