최근 스파르타코딩 부트캠프가 끝나고 cs공부와 알고리즘, 그리고 FastCampus 강의를 들으면서 학습을 이어 가고 있었는데요.
FastCampus의 강의 중 part1 - chaper9를 수강하다가 Android 버전에 따른 문제가 발생하였습니다.
이 강의는 Android 12를 타깃하고 있어 Media Player와 Notification의 설정을 Android 버전에 따라 추가 작업을 해줘야 하는 것이 있어, 혹시나 해당 강의를 듣고 있는 분들께 도움을 드리고자 글을 쓰게 되었습니다!
해당 강의를 들으면서 코드를 따라 쳐본다면
java.lang.SecurityException: Permission Denial: startForeground from pid=12550, uid=10191 requires android.permission.FOREGROUND_SERVICE
이런 오류를 마주하게 될겁니다.
startForground를 실행할때 security 에러가 뜨게 되는데, 공식문서를 찾아보니 원인으로 강의 영상의 SDK 버전이 낮아, 발생한 이슈였습니다.
최신버전 요구 사항대로 Manifest에
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
이 두개의 유저 퍼미션을 추가를 해주고
<service
android:name=".MediaPlayerService"
android:enabled="true"
android:exported="false"
android:foregroundServiceType="mediaPlayback" />
서비스에 foregroundServiceType을 지정해 주며 해결을 해주었지만
어째서인지 알람이 동작하지 않았던 것이였습니다.
애뮬레이터를 뒤적거리다 보니 앱의 알림이 비 활성화 되어있는 것을 확인했지만, 다시 활성화시키려고 해도 비활성화 상태에서 알림 상태를 변경할 수 없어, 알림을 활성화시킬 수 없었습니다.
이 문제의 원인이 알림 권한 요청 문제라고 생각하게 되어 Notification 문서를 찾아보게 되었는데,
https://developer.android.com/develop/ui/views/notifications/notification-permission?hl=ko
위 링크를 통해 문서를 살펴보면 " 참고: 앱은 포그라운드 서비스를 실행하기 위해 POST_NOTIFICATIONS 권한을 요청할 필요가 없습니다. 그러나 이전 버전의 Android에서와 마찬가지로 앱은 포그라운드 서비스를 시작할 때 알림을 포함해야 합니다. "
라고 되어 있습니다.
즉, 포그라운드 서비스를 위해 notification 권한 요청을 할 필요가 없어 잠시 멘붕이 왔다가 혹시나 하는 마음에 Android12, 13, 14 버전으로 전부 테스트해보았습니다.
여기서 알게 된 사실로 Android12 이하 버전은 알림 설정을 언제든지 비활성화 / 활성화를 할 수 있었고 13 버전 이상부터는 비활성화 상태에서 알림 상태를 변경할 수 없는 것을 확인했습니다.
결론은 Manifest에 유저퍼미션을 추가해주면서 해결하게 되었습니다.
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
사실 포스팅을 하게 된 이유는 패스트캠퍼스의 질문란에 어떤 분이 해당 문제로 앓고 계셨는데, 아무도 답변을 해주지 않길래 답변겸, 저도 하나 배워가는 게 있어서 이렇게 포스팅하게 되었습니다 ㅎ
'Android Studio > - Honey Tip' 카테고리의 다른 글
[안드로이드] Firebase 에러 ERROR_INVALID_CREDENTIAL 해결법 (2) | 2024.12.17 |
---|---|
[안드로이드] Extended Controls의 location 흰색화면 (0) | 2024.06.17 |
[안드로이드] RecyclerView 아이템 무한 중복생성 해결방법 + 이유 (1) | 2024.04.17 |
[안드로이드/카카오 오븐] 프로토 타이핑 툴 - 앱 기획 (0) | 2023.12.17 |
주코딩의 개발 노트!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!