garav kumar mishra Ответов: 2

найти путь к внешней SD-карте


я хочу получить путь внешней SD-карты, подключенной к мобильному телефону.

путь как :
mnt/SDCARD0

mnt/extsdcard.

проблема в том, что он отличается от мобильного телефона к мобильному.

2 Ответов

Рейтинг:
2

Nidhin John

Приведенный ниже код поможет...

/**
     * 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>


Dave Kreskowiak

Я сомневаюсь, что ОП все еще ищет ответ почти три года спустя.

Рейтинг:
1

Peter Leow

Это настоящая головная боль. Так что о жестком пути кода не может быть и речи. Есть некоторые решения в интернете, чтобы получить путь программно, но нет gaurantee:
1. android-поиск-sd-карты-путь[^]
2. get-external-sdcard-location-in-android[^]


garav kumar mishra

это, кажется, не работает ??