2016-10-17 2 views
1

Ich versuche, etwas auf meinem Android-Gerät auf die ExternalStorageDirectory zu schreiben. Um dies zu testen, habe ich versucht, einen einfachen Ordner in diesem Verzeichnis zu erstellen. Da es nicht funktioniert hat bin ich über this stackoverflow thread gestolpert. Als ich die meisten upvoted BeispielcodeOrdner im ExternalStorage erstellen

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 
} 

verwenden und stellen Sie die givven WRITE_EXTERNAL_STORAGE Genehmigung wird die Erstellung des Ordners immer versagt - es gibt keine Ausnahme, aber nach der Ausführung f.exists() ist noch false. Ich testete dies auf meiner Nexus 5X und der neuesten Nexus 5X-Emulator.

Im Emulator Environment.getExternalStorageState() gibt not-mounted zurück, obwohl ich die virtual SD-card montiert (das scheint mir auch seltsam). In meinem physischen Gerät gibt es zurück - so sehe ich kein Problem, warum der Code nicht funktionieren sollte.

Alle Ratschläge für die Lösung des Fehlers der Erstellung des Ordners und/oder das Verhalten der Environment.getExternalStorageState() sind willkommen.

+1

https://stackoverflow.com/questions/32635704/android-permission-doesnt-work

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

und erstellen Sie Ordner hinzufügen -even-wenn-ich-habe-deklariert-es – CommonsWare

+0

Danke, dieser Beitrag löste es vollständig. – FlashTek

Antwort

0

Stellen Sie sicher, diese Erlaubnis in manifiest Datei wie diese

String folder_main = "map"; 

File f = new File(Environment.getExternalStorageDirectory(), folder_main); 
if (!f.exists()) { 
    f.mkdirs(); 
} 
Verwandte Themen