밍쯔와 안작고 안귀여운 에러들🖤

[Android] APK33(android 13) 수정 시 Permission 권한 요청 수정 본문

Develop/Android | iOS

[Android] APK33(android 13) 수정 시 Permission 권한 요청 수정

밍쯔 2023. 9. 8. 18:35

안드로이드 targetSDK를 33으로 변경 뒤 권한 요청에서 제대로 넘어가지 않아

갑자기 당황했을 사람들이 있을거다(그런 바로 나)

 

기존에 READ_EXTERNAL_STORAGE로 요청하던 권한이

apk33 이후부터는 총 3가지로 분리되어 요청해야 한다.

미디어 유형 요청 권한
이미지 및 사진 READ_MEDIA_IMAGES
동영상 READ_MEDIA_VIDEO
오디오 READ_MEDIA_AUDIO

프로젝트에 따라 필요한 권한만을 요청하면 된다.

나의 경우, 이미지 및 사진에 대한 권한만 있으면 되기 때문에

 

 

AndroidManifest.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:ignore="ScopedStorage" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" android:maxSdkVersion="33"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>

 

 

권한 요청

private final static String[] requestPermission = {
        Manifest.permission.ACCESS_FINE_LOCATION,
        Manifest.permission.ACCESS_COARSE_LOCATION,
        Manifest.permission.READ_EXTERNAL_STORAGE,
        Manifest.permission.WRITE_EXTERNAL_STORAGE,
        Manifest.permission.CAMERA };

@RequiresApi(api = Build.VERSION_CODES.TIRAMISU)
private final static String[] requestPermission_sdk33 = {
        Manifest.permission.ACCESS_FINE_LOCATION,
        Manifest.permission.ACCESS_COARSE_LOCATION,
        Manifest.permission.READ_MEDIA_IMAGES,
        Manifest.permission.CAMERA };
        
public static void getPermission(Context context, PermissionListener permissionListener) {
        // 필요 권한
        TedPermission.with(context)
                .setPermissionListener(permissionListener)
                .setDeniedMessage(R.string.permission_denied_guide)
                .setGotoSettingButton(true)
                .setPermissions(Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU ? requestPermission_sdk33 : requestPermission)
                .check();
    }

 

권한요청 끝!

 

이 외에도 알림 허용 권한 요청에도 변동사항이 있으니 필요한 사람은 꼭 확인해보시길!

 

[참고]

https://developer.android.com/about/versions/13/behavior-changes-13?hl=ko#granular-media-permissions 

 

동작 변경사항: Android 13 이상을 타겟팅하는 앱  |  Android 개발자  |  Android Developers

Android 13 이상을 타겟팅하는 앱에 영향을 미치는 Android 13의 변경사항을 알아봅니다.

developer.android.com