Die meisten Apps, die Zugriff auf gemeinsamen Speicher benötigen, Praktiken zum Teilen von Medien und die Freigabe von Non-Media-Dateien Dateien. Einige Apps haben einen zentralen Anwendungsfall, der umfassenden Zugriff auf Dateien auf einem Gerät erfordert, aber nicht effizient mit den Best Practices für die datenschutzfreundliche Speicherung auf sie zugreifen können. Android bietet für diese Nutzer eine spezielle App mit dem Namen Zugriff auf alle Dateien. Situationen.
Der primäre Anwendungsfall einer Antiviren-App könnte beispielsweise regelmäßige Scans erfordern. für viele Dateien in verschiedenen Verzeichnissen. Wenn für diesen Scanvorgang ein wiederholter Scan erforderlich ist mit der Systemdateiauswahl Verzeichnisse auswählen, schlechte User Experience bietet. Andere Anwendungsfälle, z. B. Dateimanager-Apps, Sicherungs- und Wiederherstellungs-Apps sowie Apps zur Dokumentverwaltung – erfordern ähnliche zu berücksichtigen.
Zugriff auf alle Dateien anfordern
So kann eine App vom Nutzer den Zugriff auf alle Dateien anfordern:
- Deklarieren Sie die
MANAGE_EXTERNAL_STORAGE
Berechtigung im Manifest. - Verwenden Sie die Methode
ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
Intent-Aktion, um Nutzer auf eine Seite mit Systemeinstellungen weiterzuleiten, auf der sie die Funktion aktivieren können die Option Zugriff zum Verwalten aller Dateien zulassen aus.
So kannst du feststellen, ob deiner App die MANAGE_EXTERNAL_STORAGE
gewährt wurde
Berechtigung, Anruf
Environment.isExternalStorageManager()
Von MANAGE_EXTERNAL_STORAGE zugelassene Vorgänge
Die Berechtigung MANAGE_EXTERNAL_STORAGE
gewährt Folgendes:
Lese- und Schreibzugriff auf alle Dateien im Ordner freigegeben Speicherplatz.
Zugriff auf den Inhalt der
MediaStore.Files
-Tabelle.Zugriff auf das Stammverzeichnis des OTG-Laufwerks (OTG) für unterwegs und der SD-Karte .
Schreibzugriff auf alle internen Speicherverzeichnisse außer
/Android/data/
,/sdcard/Android
und die meisten Unterverzeichnisse von/sdcard/Android
. Dieser Schreibzugriff umfasst direkte Dateizugriffe Pfad.Apps, denen diese Berechtigung gewährt wurde, können immer noch nicht auf die app-spezifischen Verzeichnisse, die zu anderen Apps gehören, da diese Verzeichnisse als Unterverzeichnisse von
Android/data/
auf einem Speicher-Volume.
Mit der Berechtigung „MANAGE_EXTERNAL_STORAGE
“ kann eine App auf diese zugreifen
Dateien und Verzeichnisse hinzufügen, indem Sie entweder die
MediaStore
API oder direkte Datei
Pfade. Wenn Sie die
Storage Access Framework
Sie können jedoch nur dann auf eine Datei oder ein Verzeichnis zugreifen, wenn Sie dies ohne
mit der Berechtigung MANAGE_EXTERNAL_STORAGE
.
Speicherverwaltungsaktivität einer anderen App aufrufen
Unter Android 12 (API-Level 31) und höher werden Apps,
MANAGE_EXTERNAL_STORAGE
und die
QUERY_ALL_PACKAGES
wie z. B. Apps zur Dateiverwaltung, die Berechtigung
getManageSpaceActivityIntent()
Um Nutzer zur Verwaltung benutzerdefinierter Gruppenbereiche einer anderen App weiterzuleiten
Aktivitäten.
Die Methode getManageSpaceActivityIntent()
akzeptiert einen Paketnamen und eine
und gibt einen der folgenden Werte zurück:
- Ein
PendingIntent
, wenn die App mit dem Durch den angegebenen Paketnamen wurde ein benutzerdefinierter „Speicherplatz verwalten“ festgelegt Aktivitäten. Die Datei Verwaltungs-App, die die MethodegetManageSpaceActivityIntent()
aufgerufen hat, Rufen Sie den zurückgegebenen Intent auf, um Nutzer zur benutzerdefinierten Aktivität weiterzuleiten. null
, wenn in der App mit dem angegebenen Paketnamen kein „Verwalten“-Attribut definiert ist Leerzeichen" Aktivitäten.
MANAGE_EXTERNAL_STORAGE für Tests aktivieren
So kannst du herausfinden, wie sich die Berechtigung „MANAGE_EXTERNAL_STORAGE
“ auf deine App auswirkt:
die Berechtigung zum Testen aktivieren. Führen Sie dazu folgenden Befehl aus:
Befehl auf dem Computer, der mit dem Testgerät verbunden ist:
adb shell appops set --uid PACKAGE_NAME MANAGE_EXTERNAL_STORAGE allow
Google Play-Hinweis
Dieser Abschnitt enthält Hinweise für Entwickler, die Apps bei Google Play veröffentlichen.
Um den umfassenden Zugriff auf den gemeinsam genutzten Speicher zu beschränken, hat der Google Play Store seine
Richtlinie
um Apps zu bewerten, die auf Android 11 (API-Level 30) oder höher ausgerichtet sind, und
Zugriff auf alle Dateien über die Berechtigung MANAGE_EXTERNAL_STORAGE
Diese Richtlinie
ist im Mai 2021 in Kraft.
Wenn deine App auf Android 11 oder höher ausgerichtet ist und die
MANAGE_EXTERNAL_STORAGE
haben, wird in Android Studio die Lint-Warnung angezeigt,
wie in Abbildung 1 dargestellt. Diese Warnung erinnert Sie daran, dass es im Google Play Store
Richtlinie, die die Nutzung der Berechtigung einschränkt.
MANAGE_EXTERNAL_STORAGE
Berechtigung.
Fordere die Berechtigung MANAGE_EXTERNAL_STORAGE
nur an, wenn deine App
die datenschutzfreundlicheren APIs wie die Speicherungsfunktion
Access Framework oder die Medien
Store API. Nutzung Ihrer App
der Genehmigung müssen unter die zulässigen Verwendungszwecke fallen und direkt mit
die Hauptfunktion der App. Wenn Ihre App einen Anwendungsfall enthält
ähnlich wie die folgenden, kann es wahrscheinlich
Berechtigung MANAGE_EXTERNAL_STORAGE
:
- Dateiverwaltung
- Apps zum Sichern und Wiederherstellen
- Antiviren-Apps
- Apps zur Dokumentverwaltung
- Dateisuche auf dem Gerät
- Laufwerk- und Dateiverschlüsselung
- Datenmigration von Gerät zu Gerät