У меня есть телефон (B15 CAT) с слотом для SD-карт. Когда я вставить SDCard в этом телефоне и прошу внешний каталог хранения с:Как управлять внешним хранилищем независимо от телефона
Environment.getExternalStorageDirectory()
всегда возвращает пространство на sdcard0, которая является внутренней памятью. Эта память слишком мала для моей потребности. Перечисляя/mnt, я нашел точку монтирования с именем/sdcard2, которая является «настоящим» scard. К сожалению sdcard2 не кажется, стандарт и некоторые другие марки будет использовать другое имя ...
Зная, что getExternalStorageDirectory(), кажется, работает, как ожидалось по телефону, без слота SDCard, как Nexus 4, как следует я обращаюсь с внешним хранилищем, чтобы писать на SD-карте (имеется большое пространство), а не во внутренней памяти?
Я пытался что-то вроде этого:
File mnt = new File("/mnt");
File[] liste = mnt.listFiles();
boolean hassd2 = false;
for(File mount : liste) {
if(folder.getName().equals("sdcard2") {
hassd2 = true;
break;
}
}
String path = "";
if(hassd2) {
path = "/sdcard2/my/folder/"
} else {
File p = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/my/folder/");
path = p.toString();
}
Это работает, но только с этим конкретным телефоном и другим одним, без слота SDCard ...