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
アクションを受け取るためのものです。2 つ目は を受け取るためのものandroid.net.wifi.SCAN_RESULTS
です。AlarmManager
3 つ目は、私がブロードキャストしたいくつかのアクション (intent_action_monitor) と(intent_action_setup_alarm など)によってブロードキャストされたいくつかのアクションを受信するためのものです。
2 つの質問:
- すべての受信機で警告が表示されないのはなぜですか?
- 警告を修正するために、システム サービスから受信することを意図した受信者にどのようなアクセス許可を設定する必要がありますか (警告の内容は理解していますが、受信者を誰にも使用されたくありません)。ブートレシーバー、wifi レシーバー、アラームレシーバーなどに使用できます
exported="false"
か?
カスタム権限を使用することを考えましたが、ドキュメントでは、この保護レベルとカスタム権限android:protectionLevel="signatureOrSystem"
の両方に対してアドバイスしています。では、この警告をどのように処理すればよいでしょうか?
ドキュメントやコードへのリンクは大歓迎です。