[Kotlin, Java] Android 10에서 파일 엑세스가 되지 않는 문제 해결
- EPERM 오류 해결하기 -
얼마전 개발 테스트 진행중 Android 8이나, Android 9에서 잘만 읽기/쓰기가 되던 파일이 Android 10에서 구동을 하니 에러만 열심히 뿜어내고 저장이 안되는 문제가 있었습니다.
로그창을 확인해보니 EPERM 오류를 뿜어내고 있었고, 저장이 되지않아 곤란해 하고 있었습니다.
특히 테스트를 하며 확인되었지만, READ_EXTERNAL_STORAGE 및 WRITE_EXTERNAL_STORAGE 권한을 유저에게 승인받고 있어서 유독 Android 10에서만 생기는 문제로 파악이 되었죠.
오늘은 이런 Android10으로 올라가면서 파일에 대한 읽기 쓰기가 되지않는 문제에 대해 다뤄보겠습니다.
- 원인과 해결
Android 10 부터는 외부 저장소 액세스에 대해서 제한을 걸어두는 모양입니다.
해당 제한을 풀기 위해서는 AndroidManifest.xml에 requestLegacyExternalStorage의 값을 true로 설정해주어야합니다. (Android 10 이상을 타겟팅으로 하는 앱의 경우)
<manifest ... >
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<!-- This attribute is "false" by default on apps targeting
Android 10 or higher. -->
<application
android:requestLegacyExternalStorage="true" ... >
...
</application>
</manifest>
* Android 10 이상에서는 외부저장소에 접근을 하기위해 requestLegacyExternalStorage 속성을 꼭 넣어주시기 바랍니다.
** 다만 해당 방법이 완벽히 해결을 할 수 있는 방법은 아니며, 추후 업데이트 되는 Android 버전에서는 동작하지 않을수 있으니 주의해주시기 바랍니다.
- 참조
버전정보 (v1.0)
- v1.0 2020.06.12 배포
* 저작권에 위반될 수 있는 컨텐츠(이미지, 동영상 등)나 게시글은 삭제되거나 수정될 수 있습니다.
* 문제의 여지가 될 수 있는 컨텐츠의 경우 댓글 달아 주시면 빠른 시일 내에 조치하도록 하겠습니다.
Karzin
abbeea@naver.com
'컴퓨터 이야기 > Android' 카테고리의 다른 글
[Java] Activity 화면 방향 회전시 제어하기 (Sensor옵션) (0) | 2020.06.27 |
---|---|
[Kotlin, Java] Activity 화면 방향 설정 (0) | 2020.06.26 |
[Java]안드로이드 권한요청 class (0) | 2020.06.12 |
[Kotlin, JAVA]밀리세컨드 단위 시간 구하기 (0) | 2020.04.27 |
[Kotlin]Handler 이용하여 메인 UI 건드리기 (2) | 2020.04.27 |