Создать папку на External sd card

Рейтинг: 0Ответов: 1Опубликовано: 11.09.2014

Доброго времени суток.

Пытаюсь создать папку для хранения фоток с камеры приложения. Использую код:

File checkDir = new File(Environment.getExternalStorageDirectory() + "/Albums/Application/Images");

if(checkDir.exists()) {
 Log.v(LOG_TAG, "directory exist");
} else {
 Log.v(LOG_TAG, "directory NOT exist");
 checkDir.mkdirs();
 Log.v(LOG_TAG, "directory create");
}

НО все равно папка создается не на ext_sd (флешке), а на внутренней памяти телефона (sdcard0).

Уже и писал абсолютный путь, но он отрабатывает корень "/" как sdcard0, а дальше иерархия по моему пути. Бред какой-то выходит.

Как решить ситуацию ?

P.S.: в приложении планируется делать фотоснимки и хранить их для отображения в этом же приложении. Желание хранить на флешке, так как у нее объем больше.

Ответы

▲ 1Принят

Я никогда не юзал htc desire 600, но (как подсказывает мой опыт использования xperia) по всей видимости девайс имеет внутреннюю память разбитую на 2 раздела:
-внутренний системный раздел,
-второй раздел, смонтированный как cdcard (который идет из коробки),
+ слот для внешней cd карты, куда вы собственно хотите писать (3 раздел).

Поэтому что в данном случае, Environment.getExternalStorageDirectory() возвращает путь к встроенной в телефон карте памяти (2-му разделу).

Путь к "удаляемой" карте, можно получить только начиная с версии 4.4 с помощью getExternalFilesDirs, до 4.4 официальной поддержки "removable storage" нет.
вот некоторая инфа