구글 플레이스토어에서는 앱을 배포할 때 타겟 SDK 버전을 33 이상으로 설정해야 하는 정책을 시행 중입니다.
미디어권한 설정이 변경되어 기존과 같은 설정을 사용한다면 앱에서 미디어에 접근할 수 없습니다.
세분화된 미디어권한에 맞게 menifest에서 설정을 변경해줘야합니다.
세분화된 미디어권한
앱이 Android 13 이상을 타겟팅하고 미디어 파일에 접근해야 하는경우 세분화된 미디어 권한을 하나 이상 요청해야 합니다.
기존에는 READ_EXTERNAL_STORAGE 하나의 권한으로 사용했다면 Android 13부터는 이미지, 동영상, 오디오로 세분화되어 권한을 요청해야합니다.
AndroidManifest.xml에 아래 코드 추가
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
* 참고링크
https://developer.android.com/about/versions/13/behavior-changes-13?hl=ko
동작 변경사항: Android 13 이상을 타겟팅하는 앱 | Android Developers
Android 13 이상을 타겟팅하는 앱에 영향을 미치는 Android 13의 변경사항을 알아봅니다.
developer.android.com
(참고)패키지명 변수
저같은 경우에는 미디어 권한을 세분화설정을 완료해도 에러가 발생했는데 그 원인은 패키지명 변수 사용때문이였습니다.
${applicationId}는 애플리케이션의 패키지명을 나타내는 변수입니다. 그러나 SDK 33에서는 이 변수를 직접 사용할 수 없습니다.
애플리케이션의 패키지명을 나타내는 변수
소스코드 : BuildConfig.APPLICATION_ID
xml : ${applicationId}
변수대신 실제 패키지명을 입력해서 해결했습니다.