2017-01-09 3 views
0

Ich entwickle eine Anwendung, die eine Menge Daten (ca. 5 GB) aus dem Netzwerk herunterladen. Aufgrund des Speicherplatzes auf dem internen Speicher möchte ich dem Benutzer erlauben, das Ziel "SD-Karte" zu wählen: interne SD-Karte oder externe SD-Karte (Mikro-SD). Beachten Sie, dass der Pfad für jeden Hersteller geändert werden kann, wie kann ich eine Liste aller verfügbaren "SD-Karten" abrufen? (Auch wenn es sich um eine interne Anwendung handelt, die nur mit Samsung-Tablets verwendet wird)Android, wie bekomme ich eine Liste von externen Speicherverzeichnissen

+1

'alle "SD-Karten" zur Verfügung? '??? Haben Sie jemals ein Gerät gesehen, das mit mehr als einer Karte umgehen kann? – greenapps

+0

'eine interne Anwendung' ?? Was ist eine interne Anwendung? Und was willst du damit machen? – greenapps

Antwort

0

Sie können dies auf verschiedene Arten tun.

Zuerst: "die alte Art" getExternalFilesDirs() verwenden. Der erste Eintrag ist ein externer Speicher. (Das gleiche wird von getExternalFilesDir() geliefert). Der zweite Eintrag der SD-Karte. Das dritte ein USB-OTG-Laufwerk.

Zweitens: Verwenden Sie Storage Access Framework und lassen Sie den Benutzer mit Intent.ACTION_OPEN_DOCUMENT_TREE verwenden.

Drittens: Nur für Android 7. Use Volume Manager.

0

Try this:

Interner Speicher:

String extStore = System.getenv("EXTERNAL_STORAGE"); 
File f_exts = new File(extStore); 

Externe SD-Karte:

String secStore = System.getenv("SECONDARY`_STORAGE"); 
File f_secs = new File(secStore); 
+1

'System.getenv (" SECONDARY_STORAGE ");'. Wird auf den meisten Geräten heutzutage "null" liefern. Ihr Code ist dafür nicht vorbereitet. – greenapps

Verwandte Themen