다들 아시다시피 Android 13 (targetSdk 33) 부터는 POST_NOTIFICATION 권한이 필요하며
옵트 인으로 (런타임) 권한 요청이 필요합니다.
이 권한 요청이 성공적으로 이루어져야 Notification을 이용할 수 있습니다.
이번에 앱을 업데이트하면서 이슈를 하나 발견했는데, 상당히 골치가 아팠습니다.
[ 상황 ]
버전 1인 앱
앱을 설치한 기기 : sdk 33
targetSdk : sdk 33
인 상황에서, 실제로 Notification을 사용하진 않지만 추후를 위해서 creatNotifiationChannel 을 미리 해둔 상태였습니다. (옳지 않긴 하죠..)
하지만 POST_NOTIFICATION 요청을 런타임으로 하진 않았기에, 설정에서 '알림 권한'이 차단된 상황이었습니다.
이후 버전 2로 업데이트하는 과정에서, 앱에서 알림을 사용하게 되었습니다.
그래서 런타임으로 POST_NOTIFICATION 을 요청하여 사용하게 됐고,
앱을 처음 설치하는 기기에서는 모든 것이 정상적으로 진행되었습니다.
하지만 버전 1 -> 버전 2로 업데이트 되는 기기들은
'알림 권한'이 허용이 되더라도, '알림 카테고리' 에 있는, 채널이 비허용된 상황이 허용으로 토글되지가 않는 오류가 있습니다.
무슨 말이냐면
제 앱을 버전2 앱으로 처음 접해 설치하는 분들은 알림 권한을 요청받게 될테고, 알림 권한을 허용해주게 되면
1. 알림 권한 허용
2. 채널 모두 허용
이렇게 2번까지 진행이 되는데
제 앱을 버전 1 앱에서 버전 2 앱으로 업데이트 받는 분들은, 알림 권한을 마찬가지로 요청받게 될테고, 허용하게 되면
1. 알림 권한 허용
2. 채널 허용이 토글이 안됨
라는 현상이 발생합니다.
이는 '권한 요청(POST_NOTIFICATION)' 과 '채널 생성(creatNotificationChannel)' 의 순서가 중요한 것이 아님을 디버깅을 통해서도 확인했습니다.
이건 안드로이드에서 의도한건지.. 아닌지..
전혀 이럴 이유가 없어 보이고, 첫 설치 시엔 알림 채널이 모두 다 토글되기 때문에, 그리고 여러 테스트를 다 직접 해본 결과
높은 확률로 안드로이드 관련 오류로 파악됩니다.. 굉장히 골치가 아픕니다.
해결방법은.. 기존 채널을 사용하지 않고, 새로운 채널을 오픈하여 사용해주면 됩니다..!!
도움이 되셨길 바랍니다!!
'[Android]' 카테고리의 다른 글
✓ Built build/app/outputs/flutter-apk/app-debug.apk 무한 로딩 (0) | 2024.11.02 |
---|---|
[Admob] 새로 출시된 '접는 배너 광고' - Beta (0) | 2023.11.28 |
[Admob] show rate, 게재율을 개선하는게 좋을까? (0) | 2023.11.28 |
이 버전의 애플리케이션에서는 google play를 통한 결제를 사용할 수 없습니다 (2) | 2023.11.27 |
[IntelliJ 필수 플러그인] 코드 자동정리 플러그인 (1) | 2023.10.20 |