프로그래밍/android

[android] android 10에서 외부 폴더 접근하기 #requestLegacyExternalStorage

-샤리- 2021. 1. 29. 14:59

android targetSdkVersion을 29로 올렸을 때 갤러리나 외부 폴더/파일 접근하는데 오류가 발생한다면, AndroidManifest.xml의 <application>에 아래 코드를 추가해야 한다. 그래야만 Android 10이 설치 된 핸드폰에서 정상 동작을 하게 된다. 

<application
            android:requestLegacyExternalStorage="true">

 

하지만 임시 방편일 뿐, targetSdkVersion을 30으로 올리게 되면 다시 막힌다. 앱이 폰에 설치되어 있는 상태에서 targetSdkVersion을 30으로 올린 후 업데이트를 하면 문제가 발생하지 않는다. 그러나 지웠다가 새로 설치를 한 경우 또는 신규로 설치를 하는 경우에는 오류가 발생한다. 이에 대한 근본적인 해결책은 SAF(Storage Access Framework)를 이용하는 방법이라고 하니, 이참에 공부해두자.

 

저장소 액세스 프레임워크를 사용하여 파일 열기  |  Android 개발자  |  Android Developers

Android 4.4(API 수준 19)에는 저장소 액세스 프레임워크(SAF)가 도입되었습니다. SAF는 사용자가 선호하는 문서 저장소 제공자 전체에서 문서, 이미지 및 각종 다른 파일을 탐색하고 여는 작업을 간편

developer.android.com