2015-12-26 6 views
6

In meiner Android App, speichere ich einige Dateien in Verzeichnis. Dies funktionierte gut bis Android 6 Marshmallow-Update. Nach der Marshmallow-Aktualisierung kann ich nicht in dieses Verzeichnis schreiben.Benötige ich eine Laufzeitberechtigungsüberprüfung, um in den Pfad "getExternalFilesDir()" in Marshmallow zu schreiben?

Wie in this Antwort beschrieben, müssen Apps in Marshmallow, um die Erlaubnis des Benutzers zur Laufzeit vor dem Schreiben auf externen Speicher fragen.

Aber, wenn ich context.getExternalFilesDir(null) statt Environment.getExternalStorageDirectory() verwenden, brauche ich nicht für die Erlaubnis zur Laufzeit zu stellen und es funktioniert einfach (Weg von context.getExternalFilesDir(null) zurückgegeben wird, ist im Innern des externen Speicherverzeichnisses auch).

Ist das eine Art von Zufall oder kann ich weiterhin schreiben context.getExternalFilesDir(null) ohne um Erlaubnis fragen zur Laufzeit?

+0

Sind Sie wirklich in der Lage Dateien auf externe Speicher schreiben unerlaubt auf Android 6? –

Antwort

8

Die documentation Staaten:

in KITKAT starten, werden keine Berechtigungen erforderlich, um der zurückgegebene Pfad zu lesen oder zu schreiben; Es ist für die aufrufende App immer erreichbar. Diese gilt nur für Pfade, die für den Paketnamen der aufrufenden Anwendung generiert wurden. Um auf Pfade zuzugreifen, die zu anderen Paketen gehören, sind WRITE_EXTERNAL_STORAGE und/oder READ_EXTERNAL_STORAGE erforderlich.

Sie haben Lese-/Schreibzugriff auf getExternalFilesDir() auf Android 4.4 +, ohne dass Berechtigungen erforderlich sind.

Ich würde empfehlen, eine FileProvider zu verwenden, wenn Sie niedrigere API-Ebenen unterstützen müssen.

+0

Wenn ich auf API 25 ziele, aber bis API 16 unterstütze, muss ich dann die 'WRITE_EXTERNAL_STORAGE' Berechtigung im Manifest deklarieren und dann zur Laufzeit nicht nach der Erlaubnis fragen? – ankushg

0

Wie ich PERMISSIONS wissen vorgestellt gestartet, da Android 6 und höher So keine Notwendigkeit, Berechtigungen für 16 API zu überprüfen

Verwandte Themen