Der Photo Picker war in Android 13 eine optionale API für Apps, die auf Ihre Galerie zugreifen wollten, aber in Android 14 wird er zunehmend obligatorisch.
Eine der Highlight-Funktionen von Android 13 ist der Photo Picker, eine neue Systemkomponente, mit der Benutzer auswählen können, auf welche Fotos und Videos einer App Zugriff gewährt werden soll. Apps müssen keine Berechtigungen anfordern, um Zugriff auf Elemente zu erhalten, die der Benutzer über die Fotoauswahl auswählt. Dies macht es zu einer datenschutzschonenden Möglichkeit, Fotos und Videos mit Apps zu teilen. Die seit Android 4.4 verfügbare Systemdateiauswahl bietet mehr Funktionalität als die Fotoauswahl, ihre Benutzeroberfläche ist im Vergleich jedoch veraltet.
Die Fotoauswahl (und die Systemdateiauswahl davor) schützt Ihre Privatsphäre, indem Sie einschränken können, auf welche Fotos und Videos eine App Zugriff hat. Leider unterstützen viele Apps den Photo Picker nicht, obwohl eine abwärtskompatible Version davon für Android 4.4+ verfügbar ist. Apps müssen den Photo Picker gezielt mit einer Absicht aufrufen, aber viele Apps entscheiden sich aus dem einen oder anderen Grund dafür, ihn nicht zu verwenden. Glücklicherweise dürfte das in Zukunft keine Rolle mehr spielen
Android 14Dabei wird eine Möglichkeit getestet, mit der Benutzer auswählen können, auf welche Fotos und Videos Apps über den Photo Picker zugreifen können, unabhängig davon, ob diese Apps tatsächlich die API verwenden oder nicht.Viele Apps greifen über das auf Mediendateien zu Medienspeicher-API. Das System indiziert Dateien nach ihrem Typ, den so genannten Medienspeichersammlungen, und verwaltet eine Datenbank, die Apps mithilfe der Medienspeicher-API abfragen können. Apps, die die Media Store API verwenden, müssen nicht um Erlaubnis bitten, Dateien zu lesen oder zu ändern, die ihnen gehören, aber sie müssen vom Benutzer die Erlaubnis erhalten, auf Dateien zuzugreifen, die anderen Apps gehören.
Ab Android 10 mussten Apps, die auf API-Level 29 oder höher abzielen, das gewährt werden READ_EXTERNAL_STORAGE-Berechtigung durch den Benutzer, bevor er die Medienspeicher-API für den Zugriff auf Dateien verwenden kann im Besitz anderer Apps. In Android 13 wurde die READ_EXTERNAL_STORAGE-Berechtigung in drei verschiedene Berechtigungen (READ_MEDIA_AUDIO, READ_MEDIA_VIDEO und READ_MEDIA_IMAGES) aufgeteilt Jeder gewährt einer App, die auf API-Ebene 33 ausgerichtet ist, die Möglichkeit, die Medienspeicher-API zu verwenden, um auf Audio-, Video- und Bilddateien zuzugreifen, die anderen gehören Apps.
Android 14 ändert die Medienzugriffsberechtigungen erneut, indem es READ_MEDIA_VIDEO, READ_MEDIA_IMAGES und ACCESS_MEDIA_LOCATION in einer neuen Berechtigung namens READ_MEDIA_VISUAL_USER_SELECTED kombiniert. Diese Berechtigung ermöglicht es einer App, die auf API-Level 34 abzielt, laut Beschreibung „vom Benutzer ausgewählte Bild- und Videodateien aus dem freigegebenen Speicher zu lesen“. Allerdings kann Android 14 dieses neue Verhalten rückwirkend auf bestehende Apps anwenden, die auf API-Level 33 abzielen (d. h. Android 13) und fordern Sie READ_MEDIA_VIDEO oder READ_MEDIA_IMAGES an.
Wenn eine App, die auf API-Level 33 abzielt, den Laufzeitberechtigungsdialog auslöst, um den Benutzer aufzufordern, ihm READ_MEDIA_VIDEO oder READ_MEDIA_IMAGES (oder beides) zu gewähren, fügt Android 14 möglicherweise einen neuen Eintrag in die ein Berechtigungsdialogfeld mit der Aufschrift „Fotos auswählen“. Durch Tippen auf diesen Eintrag wird eine neue Version des Photo Picker gestartet, mit der der Benutzer auswählen kann, welche Fotos oder Videos er der App Zugriff gewähren möchte Zu. Die App hat anschließend nur Zugriff auf die Medienelemente, die der Benutzer ausdrücklich ausgewählt hat, es sei denn, der Benutzer entscheidet sich dafür Erweitern Sie den Zugriff auf zusätzliche Medienelemente oder gewähren Sie der App Zugriff auf die gesamten Media Store-Sammlungen für Bilder und Videos.
Dieser Eintrag im Berechtigungsdialog wird in Android 14 DP1 nicht standardmäßig angezeigt, da seine Sichtbarkeit durch eine Entwicklerflagge eingeschränkt ist, die ich umschalten musste. Wenn diese Funktion jedoch veröffentlicht wird, ist dies ein großer Gewinn für den Datenschutz, da Benutzer jederzeit entscheiden können, auf welche Fotos oder Videos eine App Zugriff haben soll.
Viel zu wenige Apps verwenden die Photo Picker API in ihrer jetzigen Form, was Google dazu veranlasst, damit zu experimentieren Abfangen einer bestehenden Absicht dass Apps die Dateiauswahl des Systems starten und stattdessen die Fotoauswahl starten. Der Photo Picker weist zwar einige Mängel auf, z. B. dass Dateien von Cloud-Medienanbietern noch nicht angezeigt werden (vielleicht wird dies bald der Fall sein). Erweiterungs-SDK Version 5!) und Es werden nur bestimmte Alben angezeigt Auf dem Gerät ist es besser als die alte Systemdateiauswahl und sicherlich besser als jede App, die Zugriff auf jedes Foto und Video in der Galerie hat.
Entwickler, die an der Implementierung der Photo Picker-API interessiert sind, sollten auf die neueste Version von aktualisieren die Jetpack-Aktivitätsbibliothek, das den Aufruf der abwärtskompatiblen Version übernimmt, die über Google Play Services auf Android 4.4 bis Android 10 bereitgestellt wird, oder der vom Framework bereitgestellten Version, die über bereitgestellt wird das MediaProvider Mainline-Modul.