Googleが提供するAndroid Oへの移行ガイドによると、暗示的なブロードキャストの意図の大部分はマニフェストに登録されてはならない(わずかな例外を除いてhere)インテントはそのままです。暗示的なブロードキャスト受信機とマニフェストの明示的なブロードキャスト受信機を区別する
必要なブロードキャストをマニフェストから移動することを検討しています。しかし、レシーバが暗黙的であるかどうかをどのように認識しますか?一般的な規則はありますか?
ここでは、マニフェストに登録したブロードキャストのサンプルを示します。 「アクション」タグだけを見て、それをマニフェストに残すためにホワイトリストに登録されているかどうかを確認する必要がありますか?
<receiver
android:name=".receiver.ImageBroadcastReceiver"
android:enabled="true" >
<intent-filter>
<action android:name="android.hardware.action.NEW_PICTURE" />
<category android:name="android.intent.category.OPENABLE" />
<data android:mimeType="image/*" />
</intent-filter>
</receiver>
<receiver
android:name=".receiver.InstallReferrerReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<receiver android:name=".receiver.JoinEventReceiver" >
<intent-filter>
<action android:name="JOIN_ACTION" />
<action android:name="CANCEL_ACTION" />
<action android:name="DECLINE_ACTION" />
</intent-filter>
</receiver>
たとえば、「com.android.vending.INSTALL_REFERRER」インテントはホワイトリストに登録されていません。アクティビティに登録する必要がありますか?もしそうなら、私たちがそれを登録するときにアプリが既にインストールされているように解雇されることはありませんか?これは、放送受信機が暗黙的であるか明示的であるかを理解しようとすると、私が「アクション」タグをチェックしなければならないと思ったので混乱します。