암시적 브로드캐스트 예외

Android 8.0 (API 수준 26) 백그라운드 실행 제한의 일환으로, API 수준 26 이상을 타겟팅하는 앱은 브로드캐스트가 명시적으로 전송되지 않는 한 매니페스트에서 암시적 브로드캐스트의 broadcast receiver를 등록할 수 없습니다. 그러나 여러 브로드캐스트가 이러한 제한에서 제외됩니다. 앱이 타겟팅하는 API 수준과 관계없이 앱은 다음 브로드캐스트의 리스너를 계속 등록할 수 있습니다.

ACTION_BOOT_COMPLETED ACTION_LOCKED_BOOT_COMPLETED
이러한 브로드캐스트는 처음 부팅 시 한 번만 전송되고 많은 앱이 작업 및 알람을 예약하는 등 이러한 브로드캐스트를 수신해야 하므로 제외됩니다.
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_ATTACHED, ACTION_USB_ACCESSORY_DETACHED, ACTION_USB_DEVICE_ATTACHED, ACTION_USB_DEVICE_DETACHED
앱에서 이러한 USB 관련 이벤트에 관해 알아야 하는 경우 브로드캐스트에 등록하는 것 외에 좋은 대안은 없습니다.
BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED, BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED, ACTION_ACL_CONNECTED, ACTION_ACL_DISCONNECTED
앱이 이러한 블루투스 이벤트에 관한 브로드캐스트를 수신하면 사용자 환경에 문제가 발생할 가능성이 낮습니다.
ACTION_CARRIER_CONFIG_CHANGED, TelephonyIntents.ACTION_*_SUBSCRIPTION_CHANGED, TelephonyIntents.SECRET_CODE_ACTION, ACTION_PHONE_STATE_CHANGED, ACTION_PHONE_ACCOUNT_REGISTERED, ACTION_PHONE_ACCOUNT_UNREGISTERED
OEM 전화 통신 앱은 이러한 브로드캐스트를 수신해야 할 수도 있습니다.
LOGIN_ACCOUNTS_CHANGED_ACTION
일부 앱은 새 계정과 변경된 계정에 예약된 작업을 설정할 수 있도록 로그인 계정 변경사항에 관해 알아야 합니다.
ACTION_ACCOUNT_REMOVED
계정을 볼 수 있는 앱은 계정이 삭제될 때 이 브로드캐스트를 수신합니다. 앱이 조치를 취해야 하는 유일한 계정 변경사항인 경우 앱은 지원 중단된 LOGIN_ACCOUNTS_CHANGED_ACTION 대신 이 브로드캐스트를 사용하는 것이 좋습니다.
ACTION_PACKAGE_DATA_CLEARED
사용자가 설정에서 데이터를 명시적으로 삭제할 때만 전송되므로 broadcast receiver가 사용자 환경에 크게 영향을 미치지 않습니다.
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

이러한 브로드캐스트는 저장소 볼륨 설치 또는 삭제와 같은 사용자의 물리적 상호작용의 결과로 전송되거나 사용 가능한 볼륨이 마운트될 때 부팅 초기화의 일환으로 전송됩니다. 일반적으로 발생하는 오류는 아니며 일반적으로 사용자가 제어합니다.

WAP_PUSH_RECEIVED_ACTION SMS_RECEIVED_ACTION

SMS 수신자 앱은 이러한 브로드캐스트를 사용합니다.