안드로이드가 Storage Access Framework를 파일 상호작용 방식으로 밀고있잖음
이때까진 그냥 READ/WRITE_EXTERNAL_STORAGE 같은거 썼는데 새 방식으로 바꿔보려고 하거든요


문제는 SQLite 접속 시에 파일의 경로가 필요하다는 거랑 db 파일이 외부 스토리지(sd카드라던지, 네트워크 드라이브)에 있다는 것 두 가지임

이전 액세스 방식으로는 외부 스토리지도 앱에 권한이 부여되고 나면 그냥 절대 경로로 파일 읽기 쓰기가 가능하잖음
그런데 새로운 방식은
1. Intent로 유저가 경로를 선택
2. 선택된 경로에 권한을 부여하고 ContentResolver가 해석 가능한 특수 URI를 던져줌
3. 그걸 통해 스트림을 열어서 작업
이런 식으로 돌아가는 듯 한데

SQLite는 스트림을 통해서 접속할 수가 없잖음 무조건 경로를 줘야 함
content:// 스키마의 특수 URI는 절대 경로처럼 읽지도 못하고

내가 생각해낼 수 있는 방법은 그냥 외부 저장소의 파일을 복사해서 앱별 저장소에 넣거나 데이터를 인메모리 db에 몽땅 넣은다음 그거의 경로를 줘서 읽는 방법 뿐인데
이러면 동기화를 따로 해줘야 하잖음..
정말 이 방법밖에 없다면 이렇게 해야겠지만 최신 방식으로 가능한 이쁜 방법이 있지 않을까 해서 물어보는것임

애초에 db 파일을 공유 저장소나 앱별 저장소에 넣으면 되는 것 아님? 이라고 물으신다면
앱의 목적이 (네트워크) 스토리지를 통한 기기 간 동기화라 db파일은 무조건 외부 저장소에 있어야댐

두 번째 방법은 파일 관리자 권한을 얻는건데
겨우 파일 하나 읽고 쓰려고 파일 관리자 권한은 좀 그렇잖아요? 애초에 너무 광범위한 권한이라 싫움


혹시 안드앱 개발해보신 분들 중 이런 문제 해결해보신 경험이 있을까 해서 질문드려봅니다~