android - „Eksportowany odbiornik nie wymaga zezwolenia” na odbiorniki przeznaczone do odbioru z usług systemowych
Mam kilka odbiorników zadeklarowanych w moim 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>
Pierwszy z nich ma otrzymaćBOOT_COMPLETED
akcja. Drugi ma otrzymaćandroid.net.wifi.SCAN_RESULTS
. Trzeci ma odbierać pewne akcje, które transmituję (intent_action_monitor) i niektóre akcje transmitowane przezAlarmManager
(intent_action_setup_alarm itp.).
Dwa pytania:
Dlaczego nie otrzymam ostrzeżenia na wszystkich odbiornikach?Jakie uprawnienia muszę ustawićdla odbiorników przeznaczonych do odbierania z usług systemowych w celu skorygowania ostrzeżenia (Rozumiem, o co chodzi i nie chcę, żeby ktokolwiek korzystał z moich odbiorników)?Będzieexported="false"
robić dla odbiorników rozruchowych, odbiorników Wi-Fi, odbiorników alarmowych itp?Myślałem o użyciu niestandardowego pozwolenia z
android:protectionLevel="signatureOrSystem"
ale doktorzy odradzają topoziom ochrony iuprawnienia niestandardowe. Jak powinienem postępować z tym ostrzeżeniem?Linki do dokumentów i / lub jakiś kod będą bardzo mile widziane.