2016-06-03 6 views
1

Ich versuche, den Weg des emulierten Speicher in meiner android app mit diesemSystem.getenv ("EMULATED_STORAGE_TARGET") gibt null auf Moto X Play (Android 6)

System.getenv("EMULATED_STORAGE_TARGET") 

Dies funktioniert gut auf alle zu bekommen Geräte bisher außer Moto X spielen (Android 6.0). In diesem Fall wird null zurückgegeben, obwohl emulierter Speicher vorhanden ist. Der Pfad sollte /storage/emulated/ sein, aber der System.getenv("EMULATED_STORAGE_TARGET") gibt null zurück. Ich habe versucht, die Lösung zu finden, habe aber nichts gefunden. Kann mir bitte jemand helfen? Vielen Dank !!

+0

ich das gleiche Problem auf Asus Zenfone2 haben, Eibisch 6.0.1. Irgendein Glück für das Problem? – HendraWD

+0

Hey, ich habe festgestellt, dass dieser Befehl je nach Hersteller unterschiedliche Ergebnisse liefert. Sie müssen einen anderen Ansatz verwenden, um Ihr Problem zu lösen, anstatt den obigen Befehl zu verwenden. – varunkr

+0

Ja, ich verwende einen anderen Ansatz, um das EMULATED_STORAGE_TARGET zu erhalten, aber ich weiß nicht, ob es optimiert ist. Ich werde meine Lösung hier – HendraWD

Antwort

0

So, hier ist meine Abhilfe EMULATED_STORAGE_TARGET

List<String> paths = new ArrayList<>(); 
File[] files = context.getExternalFilesDirs(null); 
for (File file : files) { 
    String applicationSpecificAbsolutePath = file.getAbsolutePath(); 
    String emulatedRootPath = applicationSpecificAbsolutePath.substring(0, applicationSpecificAbsolutePath.indexOf("Android/data")); 
    paths.add(emulatedRootPath); 
} 
//do what you want with the result paths 

zu bekommen Wenn Sie Fragen oder Anregungen haben, lassen Sie mich wissen

Verwandte Themen