마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

marshmallow 외장 메모리(storage) permission 관련 문의

0 추천
안녕하세요

파일관리자 app을 개발중인 학생입니다.

현재 파일관리자 app을 개발중인데

이번에 업데이트된 마시멜로우 버전에서의 오작동때문에 고수님들께

문의드립니다.

현재 마시멜로우 버전이나오면서 권한요청이 예전에는 manifast에 등록만하면 사용가능햇으나

storage관련 퍼미션은 사용할시에 추가로요청하는것으로 바뀌었습니다.

그래서 현재 권한요청까지는 동작확인하였습니다.

그런데 핸드폰에 OTG USB를 연결하여, OTG root)안에 Write(폴더생성 및 파일생성)를 할시에

permission denied 가 뜨면서 동작이 되질않습니다.

물론 getExternalFilesDirs();함수 호출후에 자신의 폴더안에서는 write기능이 가능하나

root경로에서는 전혀 동작이 되고있질 않습니다.

방법을 알고계시거나 힌트라도 주시면 감사하겠습니다.
계발새발 (400 포인트) 님이 2016년 3월 14일 질문

1개의 답변

+1 추천
 
채택된 답변
WRITE_EXTERNAL_STORAGE 권한은 첫번째 저장소 (이 경우에는 기기 내부에 있는 것)에만 적용됩니다.

나머지 외부 저장소 (SD카드, USB OTG 등)에는 해당 권한이 있어도 쓰기가 안됩니다.

 

5.0 이후 부터는 DocumentProvider 관련 API를 사용하면 쓰기가 가능하다고 합니다.
익명사용자 님이 2016년 3월 14일 답변
계발새발님이 2016년 3월 14일 채택됨
답변 감사드립니다.
제가 학생이라 잘 이해가 안가서 그러는데
DocumentProvider라는게 제가 만든 앱에 권한을 주는것인가요?
아니면 mediaprovider처럼 파일들을 읽어오는 기능인가요?
찾아보고있기는 한데...제가 이해하는게 미숙해서 그런지 이해가 잘안가네요..
사용하는법에대해서도 갈피를 못잡겟구요...ㅠ
DocumentProvider로 구글 검색하면 자료는 많이 나옵니다.
감사합니다. 실마리는 찾았는데 현재 SAF로 OTG 에 파일 생성까지는 완료하였습니다. 그런데 지금하려는게 OTG Root경로에 권한을 얻어오고 싶은데
아스트로앱을 보면 SAF로 최사위경로 선택시에  OTG 에 Write권한을 가져서 그다음부터는 app에서 SAF를 안거치고 OTG에 Write를 할수있는데 이와같은
방법을 아시면....조언좀부탁드리겠습니다...ㅠ
...