найти путь к внешней SD-карте
я хочу получить путь внешней SD-карты, подключенной к мобильному телефону.
путь как :
mnt/SDCARD0
mnt/extsdcard.
проблема в том, что он отличается от мобильного телефона к мобильному.
Приведенный ниже код поможет...
/** * Returns all available external SD-Card roots in the system. * * @return paths to all available external SD-Card roots in the system. */ public static String[] getStorageDirectories() { String[] storageDirectories; String rawSecondaryStoragesStr = System.getenv("SECONDARY_STORAGE"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { List<string> results = new ArrayList<string>(); File[] externalDirs = myContext.getExternalFilesDirs(null); for (File file : externalDirs) { String path = null; try { path = file.getPath().split("/Android")[0]; } catch (Exception e) { e.printStackTrace(); path = null; } if (path != null) { if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && Environment.isExternalStorageRemovable(file)) || rawSecondaryStoragesStr != null && rawSecondaryStoragesStr.contains(path)) { results.add(path); } } } storageDirectories = results.toArray(new String[0]); } else { final Set<string> rv = new HashSet<string>(); if (!TextUtils.isEmpty(rawSecondaryStoragesStr)) { final String[] rawSecondaryStorages = rawSecondaryStoragesStr.split(File.pathSeparator); Collections.addAll(rv, rawSecondaryStorages); } storageDirectories = rv.toArray(new String[rv.size()]); } return storageDirectories; } </string></string></string></string>
Я сомневаюсь, что ОП все еще ищет ответ почти три года спустя.
Это настоящая головная боль. Так что о жестком пути кода не может быть и речи. Есть некоторые решения в интернете, чтобы получить путь программно, но нет gaurantee:
1. android-поиск-sd-карты-путь[^]
2. get-external-sdcard-location-in-android[^]
это, кажется, не работает ??