Страницы

Поиск по вопросам

четверг, 20 июня 2019 г.

Android. Создание папки в корне SD

Необходимо создать папку в корне SD карты. Android API 21+.
В манифесте прописано:

Код:
private boolean isExistDir() { File dir = new File(Environment.getExternalStorageDirectory().getPath() + File.separator + "myDir");
if (dir.exists()) return true; if (dir.mkdirs()) return true; return false; }
Проверка на наличие SD (Возвращает true):
public boolean isExternalStorageWritable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; }
Но при вызове mkdirs() получаю false. Папка не создается. Как создать папку?


Ответ

Нашел решение совершенно случайно.

Почему не догадался до этого сразу:
Причина 1: Нагуглил штук 5-10 похожих вопросов, везде советовали указывать только "WRITE_EXTERNAL_STORAG".
Причина 2: Я искренне думал, что права на запись подразумевают права на чтение. Т.е. если разрешено только READ, то WRITE запрещено. Но! Если разрешено WRITE, то и READ пожалуйста.
Остается вопрос, почему не работало без "READ_EXTERNAL_STORAGE". Но думаю что это особенность API 21+.

Комментариев нет:

Отправить комментарий