У меня есть некоторые приемники, объявленные в моем AndroidManifest:
<!-- no warning -->
<receiver
android:name=".receivers.TriggerMonitoringBootReceiver"
android:enabled="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<!-- no warning -->
<receiver
android:name=".receivers.ScanResultsReceiver"
android:enabled="false">
<intent-filter>
<action android:name="android.net.wifi.SCAN_RESULTS" />
</intent-filter>
</receiver>
<!-- warning : Exported receiver does not require permission-->
<receiver
android:name=".receivers.BatteryMonitoringReceiver"
android:enabled="false">
<intent-filter>
<action android:name="@string/intent_action_setup_alarm" />
<action android:name="@string/intent_action_cancel_alarm" />
<action android:name="@string/intent_action_monitor" />
</intent-filter>
</receiver>
Первый предназначен для принятия действия BOOT_COMPLETED
. Вторая предназначена для получения android.net.wifi.SCAN_RESULTS
. Третий предназначен для получения некоторых действий, которые я транслировал (intent_action_monitor), и некоторых действий, транслируемых с помощью AlarmManager
(intent_action_setup_alarm и т.д.).
Два вопроса:
- Почему бы мне не получить предупреждение на всех приемниках?
- Какие разрешения мне нужно установить для приемников, предназначенных для получения от системных служб для исправления предупреждения (я понимаю, о чем речь, и я не хочу, чтобы кто-либо использовал мои приемники в любом случае)? Будет
exported="false"
сделать для загрузочных приемников, приемников Wi-Fi, приемников сигналов тревоги и т.д.
Я думал об использовании специального разрешения сandroid:protectionLevel="signatureOrSystem"
, но документы советуют обоим этим уровнем защиты и пользовательские разрешения. Итак, как я должен справиться с этим предупреждением?
Ссылки на документы и/или некоторый код будут высоко оценены.