2016-11-29 1 views
0

I need something like thiswie beiden Geräte und externe Speicher in meinem Listview zeigt

ich sowohl die externen und interne Speicher ganz am Anfang meiner Tätigkeit zeigen will.

Ich benutze einen Pfad "/ mnt /", um zu bekommen, aber dies listet leider nur internen Speicher auf.

Ich habe auch Folgendes versucht, aber es funktioniert nicht.

Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); 
if(isSDPresent) 
{     
     path=android.os.Environment.getExternalStorageDirectory().getAbsolutePath(); 
} 
else 
{ 
     path = android.os.Environment.getExternalStorageDirectory().getAbsolutePath(); 
} 

Antwort

1

Um Zugriff auf die EXTERNAL_STORAGE zu erhalten, müssen Sie Berechtigungen dafür haben.

auf diesem Weg Schreiben erfordert die WRITE_EXTERNAL_STORAGE Erlaubnis, und in den Lesezugriff starten erfordert die READ_EXTERNAL_STORAGE Erlaubnis, die automatisch gewährt wird, wenn Sie die Schreibrechte halten.

Wenn Sie nur zeigen wollen, dass es einen externen Speicher ist auch

Ab KITKAT, wenn Ihre Anwendung, interne Daten speichern, muss nur betrachten getExternalFilesDir (String) oder getExternalCacheDir mit nutzen könnten(), die keine Berechtigungen zum Lesen oder Schreiben benötigen.

und entfernen Sie die getAbsoultePath() seit Environment.getExternalStorageDirectory() den richtigen

Lesen Sie die Dokumentation für Beispiele

https://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory()

+0

Ich bin nicht in der Lage geben sowohl den internen Speicher und SD-Karte zur gleichen Zeit zu zeigen, . Was auch immer ich mache, ist nur in der Lage, nur internen Speicher anzuzeigen. Ich habe alle Erlaubnis gegeben und alles. –

Verwandte Themen