android
안드로이드 외부 sdcard 경로 가져오기
관절분리
2018. 12. 20. 13:30
반응형
테블릿에 sd카드를 삽입할시 삼성 일부 경우 storage/extSdCard 이런식으로 경로가 생기거나
제조사마다 모델마다 경로가 달라진다 아니면 sdCard 마다 1251-4213 이런식으로 숫자로 경로가 잡히기도한다
그래서 경로를 픽스할수가 없다 sdcard 마다 경로가 달라지니..
안드로이드 내부에서 제공하는 getExternalStorageDirectory 이런 함수나 getexternalfilesdir 이런 함수들은 기존에 물려있는 내부 경로를 가져오기때문에
String strSDCardPath = System.getenv("SECONDARY_STORAGE");
if ((null == strSDCardPath) || (strSDCardPath.length() == 0)) {
strSDCardPath = System.getenv("EXTERNAL_SDCARD_STORAGE");
}
뭐 이런식으로 경로를 가져오려는 시도를 하게 되는데
내가 이번에 납품하게 되는 테블릿은 null 값만 나올뿐이다 잡혀도 내부경로를 잡는다
그래서 지지고 볶고 하다가 포기하고 그냥 전체 경로 가져와서 골라내기로했다
File file = new File("storage/");
File[] listOfStorages=file.listFiles();
for(File el : listOfStorages) {
if (el.getName().contains("-")){
sdcardName = el.getName();
break;
}
}
URL = URL + sdcardName + "/hmfile";
이런식으로 외부 저장소 루트경로에서 목록을 추려서 "-" 하이푼 문자가 있는 폴더를 sdcard 경로로 인지하는걸로 했다
왜냐하면 납품하는 태블릿에서 sdcard를 0000-0000 이런식으로 숫자로 잡아버리기 때문이다
잘된다
끝
반응형