android - "Exportierter Empfänger benötigt keine Erlaubnis" für Empfänger, die von Systemdiensten empfangen sollen
Ich habe einige Empfänger in meinem AndroidManifest deklariert:
<!-- 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>
Der erste soll a erhaltenBOOT_COMPLETED
Aktion. Der zweite soll empfangenandroid.net.wifi.SCAN_RESULTS
. Die dritte soll einige von mir gesendete Aktionen empfangen (intent_action_monitor) und einige von derAlarmManager
(intent_action_setup_alarm etc).
Zwei Fragen:
Warum erhalte ich nicht bei allen Empfängern eine Warnung?Welche Berechtigungen muss ich einstellen?für Empfänger, die von Systemdiensten empfangen sollen, um die Warnung zu korrigieren (Ich verstehe, worum es geht, und ich möchte sowieso nicht, dass jemand meine Empfänger benutzt.)Willeexported="false"
tun für boot - empfänger, wifi - empfänger, alarmempfänger usw?Ich dachte daran, eine benutzerdefinierte Berechtigung mit zu verwenden
android:protectionLevel="signatureOrSystem"
die docs raten jedoch von beidem abSchutzlevel undbenutzerdefinierte Berechtigungen. Wie soll ich mit dieser Warnung umgehen?Links zu den Dokumenten und / oder Code werden sehr geschätzt.