우선, 기존에 사용하던 퍼미션이 Android 13버전에 이르러서 다음과 같이 변경되었다.

// 기존 사용 Permission
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

// 세분화된 Permission
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />

 

기존 제작된 앱에 변경사항이 생겨 릴리즈를 하려 하였으나, Android13 버전 추가로 인해 신규 정책이 생겨 릴리즈하지 못하는 상황이 발생해 다음과 같이 코드를 수정하였다.

 

1.  AndroidManifest.xml 파일에 다음과 같이 퍼미션 추가

<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" android:minSdkVersion ="33" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" android:minSdkVersion ="33" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" android:minSdkVersion ="33" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />

 

 

2. 퍼미션 전송 Activity 퍼미션 Array 코드 수정

//필요한 퍼미션 리스트
private val requiredPermissions = arrayOf(
        Manifest.permission.INTERNET,
        Manifest.permission.CAMERA,
        Manifest.permission.RECORD_AUDIO,
        Manifest.permission.MODIFY_AUDIO_SETTINGS,
        Manifest.permission.ACCESS_FINE_LOCATION,
        Manifest.permission.CALL_PHONE
)

//새로추가한 내용(sdk33 업데이트 적용) -> 현재 타겟팅 sdk버전이 33이상일 경우 permision 세분화하여 추가
//33미만일 경우 기존의 permision 추가
        var result = ArrayList<String>(requiredPermissions.toList())
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
            result.add(Manifest.permission.READ_MEDIA_AUDIO)
            result.add(Manifest.permission.READ_MEDIA_VIDEO)
            result.add(Manifest.permission.READ_MEDIA_IMAGES)
        }else{
            result.add(Manifest.permission.READ_EXTERNAL_STORAGE)
            result.add(Manifest.permission.WRITE_EXTERNAL_STORAGE)
}

 

 

3. 타겟팅 API 버전 수정 및 SDK 버전 수정

 

AndroidMainfest.xml --> toos:targetApi="33"

build.gradle --> compileSdk / targetSdk 33

 

 

sdk버전만 맞추어 개시하였을때는 세분화된 권한으로 인해 정상적으로 권한허용이 진행되지 않앗는데,

수정 후 확인해본 결과 정상적으로 권한 허용이 가능해졌다!!!!

'Android Studio' 카테고리의 다른 글

Android Studio로 App 정보 수정 및 Release  (0) 2023.06.09

+ Recent posts