우선, 기존에 사용하던 퍼미션이 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 |
---|