버전 : 1.0.0+6
배포 날짜 : 2024년 03월 25일
문제
1.0.0+6 이전 버전에서 문제가 있었다.
Manage_External_Storage 권한이 있어야만, 앱이 로컬 스토리지에 접근이 가능했다.(SDK 33 이상 얘기)
하지만, 플레이스토어에 배포를 시도하면 너무 강력하고 위험한 권한이기에 이를 사용 못하게 한다.
즉, 권한을 없애면 배포는 가능하지만 SDK 33 이상부터는 내 앱을 이용 못하게 된다.
SDK33은 2022년 이후 출시된 스마트폰이라고 보면 된다
해결 방법
결론부터 말하면 Manage_External_Storage 권한없이도 .txt 파일 읽는게 가능해졌다
app/src/main/kotlin/com/example/talk_analysis_for_kakao/MainActivity.kt 파일에서 Storage Access Framework(SAF)을 이용하여, 해결하였다
SDK 33 이상 부터는 보안 정책이 변경되어, 특정 디렉토리 및 파일을 읽으려면 SAF을 이용해야 한다.
SAF을 이용하여 특정 디렉토리의 접근을 허용 받아야 하며, 난 이 디렉토리를 Documents/KakaoTalk 에 권한을 받아야 한다. (이 디렉토리는 카카오톡에서 내보내기를 하면 내보내기들을 모아둔 상위 디렉토리이다)
내보내기 하면 생기는 디렉토리 예시
다시 본론으로 돌아가서
처음 실험을 할 때는 디렉토리가 아닌 파일 1개씩(내보내기한 .txt 파일 1개)을 읽고, 내 앱의 내부저장소에 정보를 저장하게 하였다. 하지만, 이는 사용자가 엄청난 노가다가 필요하다는 것이다. 예를 들어, 10명의 대화 내역을 궁금하면 10번을 추가해야 하며, 10명이 대화가 갱신되면 또 10번을 추가해야 했다
이는 사용자 입장에서 SAF 에서 매번 왔다갔다 하는게 불편이 생길수 밖에 없다 판단하였다(개발자인 내가 직접 해봐도 개귀찮음...)
파일 선택이 아닌 디렉토리를 선택하게 변경을 하였고, Documents/KakaoTalk 디렉토리를 선택하면, 하위 디렉토리 중에 .txt 파일을 자동으로 찾고 내부저장소에 정보를 모두 저장하게 수정하였다.
결론
결론은 SDK 33 이상에서도 내 앱을 문제 없이 사용이 가능해졌다~
MANAGE_EXTERNAL_STORAGE 권한 ㅂㅂ
'(App)톡분석AI' 카테고리의 다른 글
[톡분석AI] 배포 일지 (1.0.0+8) (0) | 2024.05.15 |
---|