暗黙的なブロードキャストの例外

Android 8.0(API レベル 26)のバックグラウンド実行制限の一環として、API レベル 26 以降を対象とするアプリは、暗黙的ブロードキャストについてマニフェストでブロードキャスト レシーバを登録できなくなりました。しかし、現在、いくつかのブロードキャストはこれらの制限から除外されています。次のブロードキャストについては、対象とする API レベルに関係なく、引き続きアプリによるリスナーの登録が可能です。

ACTION_LOCKED_BOOT_COMPLETED, ACTION_BOOT_COMPLETED
これらのブロードキャストは初回起動時にのみ 1 回だけ送信され、多くのアプリでこのブロードキャストを受信してジョブやアラームなどのスケジュールを設定する必要があるため、除外されています。
ACTION_USER_INITIALIZE, "android.intent.action.USER_ADDED", "android.intent.action.USER_REMOVED"
これらのブロードキャストは特権で保護されているため、ほとんどの通常のアプリでは受信できません。
"android.intent.action.TIME_SET", ACTION_TIMEZONE_CHANGED, ACTION_NEXT_ALARM_CLOCK_CHANGED
時計アプリでは、時刻、タイムゾーン、アラームが変更されたときにアラームを更新するため、これらのブロードキャストの受信が必要になる場合があります。
ACTION_LOCALE_CHANGED
ロケールが変更された場合にのみ送信されます。送信の頻度は高くありません。ロケールが変更されると、アプリでデータの更新が必要になる場合があります。
ACTION_USB_ACCESSORY_ATTACHEDACTION_USB_ACCESSORY_DETACHEDACTION_USB_DEVICE_ATTACHEDACTION_USB_DEVICE_DETACHED
アプリがこれらの USB 関連のイベントを知る必要がある場合、現在のところブロードキャストの登録に代わる適した手段はありません。
ACTION_CONNECTION_STATE_CHANGEDACTION_CONNECTION_STATE_CHANGEDACTION_ACL_CONNECTEDACTION_ACL_DISCONNECTED
アプリがこれらの Bluetooth イベントのブロードキャストを受信しても、ユーザー エクスペリエンスが低下する可能性はほとんどありません。
ACTION_CARRIER_CONFIG_CHANGEDTelephonyIntents.ACTION_*_SUBSCRIPTION_CHANGED"TelephonyIntents.SECRET_CODE_ACTION"ACTION_PHONE_STATE_CHANGEDACTION_PHONE_ACCOUNT_REGISTEREDACTION_PHONE_ACCOUNT_UNREGISTERED
OEM の電話アプリでは、これらのブロードキャストの受信が必要になる場合があります。
LOGIN_ACCOUNTS_CHANGED_ACTION
一部のアプリでは、新しいアカウントや変更されたアカウントに対して、スケジュール指定された操作を設定できるように、ログイン アカウントの変更について知る必要があります。
ACTION_ACCOUNT_REMOVED
アカウントに表示されているアプリは、アカウントが削除される際に、このブロードキャストを受信します。アプリで対応する必要のある操作がこのアカウント変更のみである場合は、非推奨となった LOGIN_ACCOUNTS_CHANGED_ACTION ではなく、このブロードキャストの使用を強くおすすめします。
ACTION_PACKAGE_DATA_CLEARED
ユーザーが、設定から明示的にデータを消去した場合にのみ送信されるため、ブロードキャスト レシーバーがユーザー エクスペリエンスに大きな影響を与える可能性は低いと考えられます。
ACTION_PACKAGE_FULLY_REMOVED

アプリによっては、別のパッケージが削除されたときに、保存されたデータの更新が必要になる場合があります。それらのアプリに対しては、このブロードキャストへの登録に代わる適した手段はありません。

注: パッケージに関連するその他のブロードキャスト(ACTION_PACKAGE_REPLACED など)は、新しい制限の除外対象にはなりません。これらのブロードキャストは一般的なものであり、除外することでパフォーマンスに影響の生じる可能性があります。

ACTION_NEW_OUTGOING_CALL

ユーザーによる通話の開始に対応して操作を実行するアプリでは、このブロードキャストを受信する必要があります。

ACTION_DEVICE_OWNER_CHANGED

このブロードキャストの送信頻度はそれほど高くありません。アプリによっては、デバイスのセキュリティ ステータスが変更されたことを知るために受信する必要があります。

ACTION_EVENT_REMINDER

イベントの通知をカレンダー アプリに送信するため、カレンダー プロバイダによって送信されます。カレンダー プロバイダからは対象となるカレンダー アプリが不明であるため、このブロードキャストを暗黙的に行う必要があります。

ACTION_MEDIA_MOUNTED, ACTION_MEDIA_CHECKING, ACTION_MEDIA_UNMOUNTED, ACTION_MEDIA_EJECT, ACTION_MEDIA_UNMOUNTABLE, ACTION_MEDIA_REMOVED, ACTION_MEDIA_BAD_REMOVAL

これらのブロードキャストは、ユーザーがデバイスの物理的な操作(ストレージ ボリュームのインストールまたは削除)を行った場合や、使用可能なボリュームをマウントするためにブート初期化を行う際に送信されます。そのため、頻繁に発生するものではなく、通常はユーザーの操作により発生します。

SMS_RECEIVED_ACTION, WAP_PUSH_RECEIVED_ACTION

これらのブロードキャストは、SMS を受信するアプリの動作に応じて発生します。