안녕하세요?


지난번 시간에 제가 어떻게 해서 외부 저장소 경로를 살펴 보려고 했습니다만, 그게 생각처럼 잘 되지가 않았다는 내용을 포스팅 하고자 합니다.



먼저 지난번에 코딩을 하였는 MainActivity.java에다가 위 스크린샷에 보이는 것 처럼 코딩을 시작해 줍니다. 위 코딩들은 각각 다른 경로를 찾아내는 코드입니다.



USB에 연결된 갤럭시 S4에서 확인을 해본 결과, 일단 겉 보기가 엉망인 것은 둘째치고서, 제대로 SD카드의 경로를 지정한 경우가 하나도 없습니다. 스마트폰에 들어가 있는 SD메모리카드의 경로는 다음과 같습니다.



우선 getExternalStorageDirectory()라는 메서드로 찾아낸 경로에서 Storage까지는 제대로 찾았습니다만, 그 이후에 나오는 경로는 도저히 어떻게 코딩을 해야 찾을 수 있는지 알길이 없습니다. 일단 권한의 문제인가 생각을 하여서, 권한을 부여하는 작업을 시작했습니다.



먼저 AndroidMainfest.xml파일로 가서 외장 메모리를 읽을 권한을 부여해 주는 권한을 위 스크린샷과 같이 지정을 하도록 합니다. 그리고 나서는 API23부터 메모리 카드를 읽는 권한이 위험권한으로 부여가 되었으므로, Do it 안드로이드 앱 프로그래밍이라는 책에서 나온 것처럼, gradle에서 아래 스크린샷과 같은 작업을 시작해 줍니다.



targetSdkVersion이 원래는 25로 되어 있는데 22로 바꾸어서 권한을 획득하지 않고도 제대로 작동을 하고자 했습니다. 그런데 이렇게 하고 나니, 이전과는 다르게 아예 앱이 스마트폰에 인스톨 하는 과정에서 에러가 발생해서 제대로 인스톨이 되지도 못했습니다. 아니, 오히려 아예 [앱을 삭제하겠냐]는 물음까지 나왔습니다.


이래저래 시도를 하기는 해 보았습니다만, 지금의 저로서는 어떻게 해결할 방법이 없는게 SD카드 안의 파일을 읽는 방법이었습니다. 아직 Do it 책에서 남은 부분도 많기에, 지금은 이 부분은 어떻게 미루어 두고, 계속 진도를 나가야 겠다는 생각이 들었습니다.

+ Recent posts

티스토리 툴바