기존에 잘 사용하던 로컬 알림이 안드로이드13 (API 레벨 33)을 타겟으로 빌드하니 작동하지 않습니다. 이유를 검색해 보니, 안드로이드 13에서는 노티피케이션을 위한 매니페스트 권한과, 유저에게 런타임 권한을 얻어야 사용이 가능합니다.
먼저 AndroidManifest.xml 에 노티피케이션 권한을 선언합니다.
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
런타임에서 POST_NOTIFICATIONS 의 권한을 사용자로부터 받았는지 확인하고, 받지 않았다면, 권한을 요청합니다.
if (ContextCompat.checkSelfPermission (this, Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED) {
// 권한을 이미 얻었습니다.
} else {
val reqPerm = registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted ->
if (isGranted) {
} else {
}
}
reqPerm.launch(Manifest.permission.POST_NOTIFICATIONS)
}
AndroidManifest.xml 에 노티피케이션 권한을 선언해도 위와 같이 실시간 권한을 얻지 않으면, 알림이 뜨지 않는다. (설정->어플리케이션쪽에서 본인 어플리케이션을 보면 디폴트로 알림 권한기 Off 상태가 됨)
'소프트웨어개발 > Android' 카테고리의 다른 글
[안드로이드] EditText 모양 바꾸기 및 선택시 모양 변경 (1) | 2020.01.21 |
---|---|
[안드로이드] 프로젝트 이름 바꾸기 (패키지 이름 변경 포함) (4) | 2019.04.02 |
[안드로이드] java.lang.ClassNotFoundException ad.loadClass 비정상 종료 해결하기 (0) | 2019.03.15 |
안드로이드 스플래시 스크린 만들기 (0) | 2018.11.28 |
안드로이드 액티비티 애니메이션 없애기 (0) | 2018.10.20 |