수신 동의 알림에 대한 알림 권한

Android 13의 알림은 옵트인 모델을 사용합니다. 이는 옵트아웃 모델을 사용하는 이전 Android 버전에서 변경된 것입니다. Android 13에서 모든 앱은 알림 프롬프트를 보내기 전에 사용자에게 권한을 요청해야 합니다. 이 모델은 알림 중단을 줄이고 정보 과부하를 최소화하며 사용자가 중요한 사항에 따라 표시되는 알림을 제어하는 ​​데 도움이 됩니다. 옵트인 모델을 지원하려면 OEM은 알림 및 런타임 권한 시스템의 변경 사항을 구현해야 합니다.

이 페이지에서는 OEM이 이 변경 사항을 지원하기 위해 구현해야 하는 사항과 구현을 검증하는 방법에 대해 설명합니다.

옵트인 알림에 대한 변경 사항 구현

Android 13부터 앱은 알림을 보내기 전에 시스템에서 android.permission.POST_NOTIFICATION 런타임 권한을 요청하여 알림을 보낼 의도를 선언해야 합니다.

Android 13 이상에서는 앱이 사용자에게 알림을 보낼 수 있는지 여부를 결정하는 설정이 권한 시스템에 저장됩니다. Android 13 이전에는 이 설정이 알림 시스템에 저장되었습니다. 따라서 OEM은 앱이 알림을 보낼 수 있는지 여부에 대한 기존 알림 데이터를 알림 시스템에서 런타임 권한 시스템으로 마이그레이션해야 합니다. OEM은 또한 해당 데이터를 앱 개발자에게 표시하는 알림 시스템에서 기존 API를 유지 관리해야 합니다.

알림 및 권한 시스템에 대한 변경 사항은 사용자 알림 동작의 옵트인 모델을 기반으로 하며 구현 지침 섹션에 설명되어 있습니다.

옵트인 모델의 사용자 알림 동작

다음 표는 Android 13을 실행하는 기기의 다양한 앱 버전에 대한 알림 동작을 보여줍니다.

Android 13의 기기 Android 13 이상을 대상으로 하는 앱 Android 13보다 낮은 버전을 대상으로 하는 앱
새로 설치 앱에서 메시지를 표시할 때까지 알림이 차단됩니다.

앱은 권한을 요청하는 시기를 제어합니다.

알림은 OS에서 메시지를 표시할 때까지 차단됩니다.

앱을 처음 실행할 때 권한을 요청합니다.

기존 앱(업그레이드) 앱에서 메시지를 표시할 때까지 알림이 허용됩니다.

앱이 첫 번째 적격 실행에서 요청할 때까지 임시 권한이 부여됩니다.

알림은 OS에서 메시지를 표시할 때까지 허용됩니다.

앱 최초 실행 전까지 임시 권한이 부여됩니다.

구현 지침

참조 구현은 알림 서비스 , 권한 서비스정책 서비스를 참조하십시오. 기본 권한 핸들러에 대한 예외를 구현하려면 런타임 권한을 참조하십시오.

구현하는 동안 Android 13 이하 SDK를 대상으로 하는 앱의 사용자 알림 동작에 대한 다음 가이드라인을 사용하세요.

  • Android 13 기기에 새로 설치된 앱은 사용자가 권한 프롬프트를 승인하지 않고 알림을 보내서는 안 됩니다.
    • 앱이 Android 13 이상 버전을 대상으로 하는 경우 앱에서 메시지를 표시할 때까지 알림을 차단해야 합니다. 앱이 사용자 권한을 요청할 시기와 여부를 제어하기 때문입니다.
    • 앱이 Android 13보다 낮은 버전을 대상으로 하는 경우 OS에서 메시지를 표시할 때까지 알림을 차단해야 합니다. OS는 앱을 처음 실행할 때 권한 프롬프트를 표시해야 합니다.
  • Android 13으로 업그레이드하기 전에 기기에 있던 모든 앱 또는 백업 및 복원을 통해 복원된 모든 앱은 사용자가 해당 앱에서 활동을 처음 시작할 때까지 알림을 보낼 수 있어야 합니다.

    • 버전 Android 13 이상의 SDK를 대상으로 하는 앱의 경우 사용자가 이전에 앱 또는 NotificationChannel 수준에서 이 앱에 대한 알림 설정을 사용자 지정하지 않은 경우 임시 권한 부여를 취소합니다. 그런 다음 앱은 계속해서 알림을 보내도록 허용하기 전에 사용자에게 권한을 요청해야 합니다.

      Android 13을 대상으로 하는 업그레이드된 앱에 현재 임시 업그레이드 권한을 통한 알림 권한이 없고 사용자가 한 번 이상 앱을 실행한 경우 앱은 추가 포그라운드 서비스 실행을 허용하기 전에 알림 권한 프롬프트를 표시해야 합니다.

    • Android 13보다 낮은 버전의 대상 SDK가 있는 앱의 경우 앱이 하나 이상의 NotificationChannel 생성한 후 첫 번째 활동 시작을 가로채서 사용자가 앱에서 알림을 받을 것인지 묻는 권한 프롬프트를 표시합니다.

      사용자가 이전에 앱 또는 업그레이드 장치의 앱에 대한 NotificationChannel 수준 또는 장치에 복원 중인 백업에 대한 알림 설정을 사용자 지정한 경우 앱 수준 설정을 FLAG_PERMISSION_USER_SET 플래그를 사용하여 권한 시스템으로 마이그레이션해야 합니다. 앱에서 특별히 요청하지 않는 한 사용자에게 더 이상 알림 권한 프롬프트를 표시해서는 안 됩니다.

  • 백업 및 복원은 Android 13 기기와 이전 OS 버전의 기기 간에 이전 버전 및 이전 버전과 호환되어야 합니다. Android 13 기기에서 생성된 백업 데이터는 이전 OS 버전으로 복원해야 하며 이전 OS 버전의 백업 데이터는 Android 13 기기로 복원해야 합니다.

  • 진행 중인 미디어 재생과 관련된 미디어 알림은 알림 권한에서 제외되어야 합니다.

알림 및 권한 시스템에 대한 변경 사항을 확인합니다.

구현을 검증하려면 다음 테스트를 실행하십시오.