2016-10-17 3 views
1

Я пытаюсь написать что-то на 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() приветствуются.

+1

https://stackoverflow.com/questions/32635704/android-permission-doesnt-work -even-if-i-have-объявил-это – CommonsWare

+0

Спасибо, это сообщение решило его полностью. – FlashTek

ответ

0

Убедитесь, чтобы добавить это разрешение в manifiest файл

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

и создать папку, как это

String folder_main = "map"; 

File f = new File(Environment.getExternalStorageDirectory(), folder_main); 
if (!f.exists()) { 
    f.mkdirs(); 
} 
Смежные вопросы