안드로이드 13버전인 티라미수(tiramisu)에서 저장소에 대한 읽기와 쓰기 권한 설정이 변화가 되었습니다.
기존에 핸드폰의 저장소에 읽기, 쓰기 권한을 설정하려면 아래처럼 하였습니다.
* 설정 : Manifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
* 권한 묻기 : *.kt
//읽기 쓰기 권한 종류
var permissions = arrayOf(
android.Manifest.permission.WRITE_EXTERNAL_STORAGE,
android.Manifest.permission.READ_EXTERNAL_STORAGE
)
//권한 물어보기
registerForActivityResult(
ActivityResultContracts.RequestMultiplePermissions()
) { isGranted ->
//권한 결과 처리..
}.launch(permissions)
그런데 13으로 와서 저렇게 하면...권한에 대한 접근결과 값이 false가 나오는 현상을 만나게 됩니다.
이를 해결하기 위해서는 아래처럼 내용을 변경 해 주도록 합니다.
* 설정 : Manifest.xml
<!--
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
-->
<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" />
* 권한 묻기 : *.kt
//읽기 쓰기 권한 종류
var permissions = arrayOf(
//android.Manifest.permission.WRITE_EXTERNAL_STORAGE,
//android.Manifest.permission.READ_EXTERNAL_STORAGE
android.Manifest.permission.READ_MEDIA_AUDIO,
android.Manifest.permission.READ_MEDIA_VIDEO,
android.Manifest.permission.READ_MEDIA_IMAGES
)
//권한 물어보기
registerForActivityResult(
ActivityResultContracts.RequestMultiplePermissions()
) { isGranted ->
//권한 결과 처리..
}.launch(permissions)
기존과 다르게 저장소에 대한 접근 권한이 세부적으로 바뀐것을 볼 수 있습니다.
역시나 펌웨어의 버전이 올라가면 이러한 버전에 대한 조건이 계속해서 붙는 특성은 어쩔수가 없는 것 같습니다.
아래는 안드로이드 13에 대한 변경사항이 소개된 내용 입니다.
https://developer.android.com/about/versions/13/behavior-changes-13?hl=ko
간단하게 살펴본 안드로이드 티라미수(TIRAMISU) 읽기 쓰기 권한 설정에 대한 내용 이였습니다.
반응형
'기타 > Android' 카테고리의 다른 글
Android Jetpack Scaffold 영역 짤림 (0) | 2023.06.15 |
---|---|
안드로이드 usesCleartextTraffic (0) | 2023.06.15 |
Kotlin Room적용시 주의해야 될 사항 (0) | 2020.08.19 |
Android Q(안드로이드 10) (0) | 2019.08.13 |
구글 마켓 정책 변경(2019) (0) | 2019.05.02 |
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)
댓글