2016-06-09 10 views
1

Ich habe eine vorhandene App im Speicher und verwendet "Environment.getExternalStorageDirectory()", um auf den Speicher zuzugreifen. Dieser Code hat von 2.3 bis Lollipop (auf meinem Galaxy S5, Verizon) funktioniert und ermöglicht Benutzern das Lesen/Schreiben in ein Verzeichnis namens Environment.getExternalStorageDirectory()/MyFooBar. Kürzlich wurde meine S5 auf 6.0 Marshmallow aktualisiert und jetzt bekommen meine S5 (und auch die Kunden) den Fehler, dass/storage/emulated/0/MyFooBar nicht erstellt werden kann.Meine App mit Environment.getExternalStorageDirectory()

Per Android API Aufrufe an Environment.getExternalStorageState() und im Vergleich zu Environment.MEDIA_MOUNTED Staaten ist es eingehängt und Environment.isExternalStorageRemovable() ist nein.

Alle diese Anrufe waren die gleichen und jetzt w/S5 und Marshmallow sind gebrochen.

Jede Hilfe wäre willkommen.

Danke, Jim

Antwort

0

in Android 6.0 Beginning (API-Ebene 23), gewähren Benutzern Berechtigungen für Anwendungen, während die App ausgeführt wird, nicht, wenn sie die App installieren.

WRITE_EXTERNAL_STORAGE ist eine gefährliche Berechtigung und wird nicht automatisch gewährt. Daher sollten Sie das neue Berechtigungsschema implementieren, damit es auf Android Marshmallow funktioniert.

https://developer.android.com/training/permissions/requesting.html

+0

ausgezeichnet. Vielen Dank für Ihre Antwort. – user3123813

+0

bitte markieren Sie es als akzeptiert, wenn es für Sie funktioniert. Vielen Dank! –