Я пытаюсь написать что-то на ExternalStorageDirectory
на моем устройстве Android. Чтобы проверить это, я попытался создать простую папку в этом каталоге. Поскольку он не работал, я наткнулся на поток потокового стека this. Когда я использую самый upvoted пример кодаСоздать папку в ExternalStorage
File folder = new File(Environment.getExternalStorageDirectory() + "/map");
boolean success = true;
if (!folder.exists()) {
success = folder.mkdir();
}
if (success) {
// Do something on success
} else {
// Do something else on failure
}
и установить givven WRITE_EXTERNAL_STORAGE
разрешения, создание папки всегда неудачу - не исключение, но после выполнения f.exists()
еще false
. Я тестировал это на своих Nexus 5X
и последних Nexus 5X-Emulator
.
В эмуляторе Environment.getExternalStorageState()
возвращается not-mounted
, хотя я установил virtual SD-card
(это кажется мне также странным). В моем физическом устройстве он возвращает mounted
- поэтому я не вижу никаких проблем, почему код не должен работать.
Любые советы по решению проблемы отказа от создания папки и/или поведения Environment.getExternalStorageState()
приветствуются.
https://stackoverflow.com/questions/32635704/android-permission-doesnt-work -even-if-i-have-объявил-это – CommonsWare
Спасибо, это сообщение решило его полностью. – FlashTek