Datenschutzänderungen bei Android 10

Android 10 (API-Level 29) führt eine Reihe von Funktionen und Verhaltensänderungen ein, um den Datenschutz der Nutzer zu verbessern. Diese Änderungen erweitern die Transparenz und Kontrolle, die Nutzer über ihre Daten haben, und die Möglichkeiten, die sie Apps geben. Diese Funktionen können dazu führen, dass sich bestimmte Verhaltensweisen oder Daten, auf die sich Ihre App verlässt, im Vergleich zu älteren Versionen der Plattform anders verhalten. Die Auswirkungen auf Ihre App sollten minimal sein, wenn Ihre App die aktuellen Best Practices für den Umgang mit Nutzerdaten befolgt.

Auf dieser Seite finden Sie eine Zusammenfassung der einzelnen Änderungen.

Wichtigste Änderungen

In diesem Abschnitt werden die wichtigsten Änderungen in Android 10 im Zusammenhang mit dem Datenschutz beschrieben.

Zugriff auf externen Speicher auf App-Dateien und ‑Medien beschränkt

Standardmäßig erhalten Apps, die auf Android 10 und höher ausgerichtet sind, eingeschränkten Zugriff auf den externen Speicher, auch begrenzter Speicher genannt. Solche Apps können die folgenden Dateitypen auf einem externen Speichergerät sehen, ohne dass sie speicherbezogene Nutzer berechtigungen anfordern müssen:

Weitere Informationen zum begrenzten Speicher sowie zum Freigeben, Zugreifen und Ändern von Dateien, die auf externen Speichergeräten gespeichert sind, finden Sie in den Leitfäden zum Verwalten von Dateien im externen Speicher und zum Zugreifen auf und Ändern von Mediendateien.

Zugriff auf den Gerätestandort im Hintergrund erfordert Berechtigung

Um die zusätzliche Kontrolle zu unterstützen, die Nutzer über den Zugriff einer App auf Standortinformationen haben, führt Android 10 die ACCESS_BACKGROUND_LOCATION Berechtigung ein.

Im Gegensatz zu den ACCESS_FINE_LOCATION und ACCESS_COARSE_LOCATION Berechtigungen wirkt sich die ACCESS_BACKGROUND_LOCATION Berechtigung nur auf den Zugriff einer App auf den Standort aus, wenn sie im Hintergrund ausgeführt wird. Eine App greift auf den Standort im Hintergrund zu, es sei denn, eine der folgenden Bedingungen ist erfüllt:

  • Eine Aktivität der App ist sichtbar.
  • Die App führt einen Dienst im Vordergrund aus, der den Vordergrund Diensttyp location deklariert hat.

    Wenn Sie den Diensttyp im Vordergrund für einen Dienst in Ihrer App deklarieren möchten, legen Sie Ihre App targetSdkVersion oder compileSdkVersion auf 29 oder höher fest. Weitere Informationen dazu, wie Dienste im Vordergrund nutzerinitiierte Aktionen fortsetzen können, für die Zugriff auf den Standort erforderlich ist

Wenn Ihre App Geofences erstellt und überwacht und auf Android 10 (API-Level 29) oder höher ausgerichtet ist, müssen Sie die ACCESS_BACKGROUND_LOCATION Berechtigung deklarieren.

Zugriff automatisch gewährt, wenn auf Android 9 oder niedriger ausgerichtet

Wenn Ihre App unter Android 10 oder höher ausgeführt wird, aber auf Android 9 (API-Level 28) oder niedriger ausgerichtet ist, wendet die Plattform das folgende Verhalten an:

  • Wenn Ihre App ein <uses-permission> Element für ACCESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION, deklariert, fügt das System während der Installation automatisch ein <uses-permission> Element für ACCESS_BACKGROUND_LOCATION hinzu.
  • Wenn Ihre App entweder ACCESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION anfordert, fügt das System der Anfrage automatisch ACCESS_BACKGROUND_LOCATION hinzu.

Zugriff, wenn Gerät auf Android 10 aktualisiert wird

Wenn ein Nutzer Ihrer App Zugriff auf den Gerätestandort gewährt – entweder ACCESS_COARSE_LOCATION oder ACCESS_FINE_LOCATION – und dann sein Gerät von Android 9 auf Android 10 aktualisiert, aktualisiert das System automatisch die Gruppe der standortbezogenen Berechtigungen, die Ihrer App gewährt wurden. Die Gruppe der Berechtigungen, die Ihre App nach dem Upgrade erhält, hängt von der Ziel-SDK-Version und den definierten Berechtigungen ab, wie in der folgenden Tabelle dargestellt:

Tabelle 1 Änderungen am Status der Berechtigung zur Standortermittlung nach dem Upgrade des Geräts auf Android 10

Zielplattformversion Berechtigung zur Ermittlung des groben oder genauen Standorts gewährt?
Berechtigung zur Standortermittlung im Hintergrund im Manifest definiert?
Aktualisierter Standardberechtigungsstatus
Android 10 Ja Ja Vordergrund- und Hintergrundzugriff
Android 10 Ja Nein Nur Vordergrundzugriff
Android 10 Nein (Vom System ignoriert) Kein Zugriff
Android 9 oder niedriger Ja Wird vom System automatisch beim Upgrade des Geräts hinzugefügt Vordergrund- und Hintergrundzugriff
Android 9 oder niedriger Nein (Vom System ignoriert) Kein Zugriff

Beachten Sie, dass der Nutzer diese Zugriffsebene auch ändern kann, nachdem das System den Zugriff Ihrer App auf den Gerätestandort automatisch aktualisiert hat. Der Nutzer kann beispielsweise den Zugriff Ihrer App auf den Vordergrund beschränken oder den Zugriff vollständig widerrufen. Bevor Sie versuchen, auf den Standort des Geräts zuzugreifen, insbesondere in einem Dienst im Vordergrund, sollte Ihre App prüfen, ob der Nutzer Ihrer App weiterhin erlaubt, diese Standortinformationen zu erhalten.

Zugriff widerrufen, wenn Ziel-API-Level auf Android 10-Geräten aktualisiert wird

Angenommen, Ihre App ist bereits auf einem Gerät mit Android 10 installiert. Wenn Sie Ihre App in dieser Situation auf Android 10 aktualisieren, widerruft das Gerät die ACCESS_BACKGROUND_LOCATION Berechtigung.

Weitere Informationen zum Abrufen des Gerätestandorts, während Ihre App im Hintergrund ausgeführt wird, finden Sie im Leitfaden zum Empfangen regelmäßiger Standort updates.

Einschränkungen beim Starten von Aktivitäten im Hintergrund

Ab Android 10 schränkt das System das Starten von Aktivitäten im Hintergrund ein. Diese Verhaltens änderung trägt dazu bei, Unterbrechungen für den Nutzer zu minimieren und ihm mehr Kontrolle darüber zu geben, was auf seinem Bildschirm angezeigt wird. Solange Ihre App Aktivitäten als direkte Folge der Nutzerinteraktion startet, ist sie höchstwahrscheinlich nicht von diesen Einschränkungen betroffen.

Weitere Informationen zur empfohlenen Alternative zum Starten von Aktivitäten im Hintergrund finden Sie im Leitfaden zum Benachrichtigen von Nutzern über zeitkritische Ereignisse in Ihrer App.

Kennungen und Daten

In diesem Abschnitt werden Änderungen aufgeführt, die speziell für die Arbeit mit Gerätekennungen und ‑daten gelten.

Entfernung der Kontaktaffinität

Ab Android 10 werden keine Informationen zur Kontaktaffinität mehr erfasst. Wenn Ihre App also eine Suche in den Kontakten des Nutzers durchführt, werden die Ergebnisse nicht nach der Häufigkeit der Interaktion sortiert.

Der Leitfaden zu ContactsProvider enthält einen Hinweis, in dem die spezifischen Felder und Methoden beschrieben werden, die veraltet ab Android 10 auf allen Geräten sind.

MAC-Adressen-Randomisierung

Auf Geräten mit Android 10 oder höher werden standardmäßig zufällige MAC-Adressen übertragen.

Wenn Ihre App einen geschäftlichen Anwendungsfall abdeckt, bietet die Plattform APIs für verschiedene Vorgänge im Zusammenhang mit MAC-Adressen:

  • Zufällige MAC-Adresse abrufen: Apps für Geräteeigentümer und Apps für Profilinhaber können die zufällige MAC-Adresse abrufen, die einem bestimmten Netzwerk zugewiesen ist, indem sie aufrufen getRandomizedMacAddress().
  • Tatsächliche MAC-Adresse abrufen: Apps für Geräteeigentümer können die tatsächliche Hardware-MAC-Adresse eines Geräts abrufen, indem sie getWifiMacAddress() aufrufen. Diese Methode ist nützlich, um Geräteflotten zu verfolgen.

Einschränkung des Zugriffs auf das Dateisystem /proc/net

Auf Geräten mit Android 10 oder höher können Apps nicht auf /proc/net zugreifen, das Informationen zum Netzwerkstatus eines Geräts enthält. Apps , die Zugriff auf diese Informationen benötigen, z. B. VPNs, sollten die NetworkStatsManager oder ConnectivityManager Klasse verwenden.

Einschränkung für nicht zurücksetzbare Gerätekennungen

Ab Android 10 benötigen Apps die READ_PRIVILEGED_PHONE_STATE privilegierte Berechtigung, um auf die nicht zurücksetzbaren Kennungen des Geräts zuzugreifen, zu denen sowohl die IMEI als auch die Seriennummer gehören.

Betroffene Methoden sind unter anderem:

Wenn Ihre App nicht über die Berechtigung verfügt und Sie trotzdem Informationen zu nicht zurücksetzbaren Kennungen anfordern, variiert die Antwort der Plattform je nach Ziel-SDK-Version:

  • Wenn Ihre App auf Android 10 oder höher ausgerichtet ist, tritt ein SecurityException auf.
  • Wenn Ihre App auf Android 9 (API-Level 28) oder niedriger ausgerichtet ist, gibt die Methode null oder Platzhalterdaten zurück, wenn die App die READ_PHONE_STATE Berechtigung hat. Andernfalls tritt ein SecurityException auf.

Für viele Anwendungsfälle sind keine nicht zurücksetzbaren Gerätekennungen erforderlich. Wenn Ihre App beispielsweise nicht zurücksetzbare Gerätekennungen für das Anzeigen-Tracking oder die Nutzeranalyse verwendet, verwenden Sie stattdessen eine Android-Werbe-ID für diese spezifischen Anwendungsfälle. Weitere Informationen finden Sie unter Best Practices für eindeutige Kennungen.

Eingeschränkter Zugriff auf Daten in der Zwischenablage

Sofern Ihre App nicht der Standard-IME (Input Method Editor) oder die App ist, die derzeit den Fokus hat, kann Ihre App unter Android 10 oder höher nicht auf Daten in der Zwischenablage zugreifen.

Schutz der Seriennummer des USB-Geräts

Wenn Ihre App auf Android 10 oder höher ausgerichtet ist, kann sie die Seriennummer erst lesen, wenn der Nutzer Ihrer App die Berechtigung zum Zugriff auf das USB-Gerät oder ‑Zubehör gewährt hat.

Weitere Informationen zum Arbeiten mit USB-Geräten finden Sie im Leitfaden zum Konfigurieren von USB-Hosts.

Kamera und Konnektivität

In diesem Abschnitt werden Änderungen aufgeführt, die speziell für Kamerametadaten und Konnektivitäts-APIs gelten.

Einschränkung des Zugriffs auf Kameradetails und ‑metadaten

Android 10 ändert den Umfang der Informationen, die die getCameraCharacteristics() Methode standardmäßig zurückgibt. Insbesondere muss Ihre App die CAMERA Berechtigung haben, um auf potenziell gerätespezifische Metadaten zuzugreifen, die im Rückgabewert dieser Methode enthalten sind.

Weitere Informationen zu diesen Änderungen finden Sie im Abschnitt zu Kamerafeldern, für die eine Berechtigung erforderlich ist.

Einschränkung beim Aktivieren und Deaktivieren von WLAN

Apps, die auf Android 10 oder höher ausgerichtet sind, können WLAN nicht aktivieren oder deaktivieren. Die WifiManager.setWifiEnabled() Methode gibt immer false zurück.

Wenn Sie Nutzer auffordern müssen, WLAN zu aktivieren und zu deaktivieren, verwenden Sie ein Einstellungs feld.

Einschränkungen beim direkten Zugriff auf konfigurierte WLANs

Zum Schutz der Privatsphäre der Nutzer ist die manuelle Konfiguration der Liste der WLANs auf System-Apps und Device Policy Controller (DPCs)beschränkt. Ein bestimmter DPC kann entweder der Geräteeigentümer oder der Profilinhaber sein.

Wenn Ihre App auf Android 10 oder höher ausgerichtet ist und keine System App oder kein DPC ist, geben die folgenden Methoden keine nützlichen Daten zurück:

Wenn Ihre App eine Verbindung zu WLANs herstellen muss, verwenden Sie die folgenden alternativen Methoden:

  • Verwenden Sie WifiNetworkSpecifier in einem Standardobjekt NetworkRequest, um eine sofortige lokale Verbindung zu einem WLAN herzustellen.
  • Wenn Sie WLANs hinzufügen möchten, die für den Internetzugriff für den Nutzer in Betracht gezogen werden sollen, verwenden Sie WifiNetworkSuggestion Objekte. Sie können Netzwerke, die im Dialogfeld zur automatischen Auswahl von Netzwerken angezeigt werden, mit addNetworkSuggestions() bzw. removeNetworkSuggestions() hinzufügen und entfernen. Für diese Methoden sind keine Berechtigungen zur Standortermittlung erforderlich.

Für einige Telefonie-, Bluetooth- und WLAN-APIs ist die Berechtigung zur Ermittlung des genauen Standorts erforderlich

Wenn Ihre App auf Android 10 oder höher ausgerichtet ist, muss sie die ACCESS_FINE_LOCATION Berechtigung haben, um mehrere Methoden in den WLAN-, Wi-Fi Aware- oder Bluetooth-APIs verwenden zu können. In den folgenden Abschnitten werden die betroffenen Klassen und Methoden aufgeführt.

Telefonie

WLAN

Bluetooth

Berechtigungen

In diesem Abschnitt werden Updates am Android-Berechtigungsmodell beschrieben.

Eingeschränkter Zugriff auf Bildschirminhalte

Zum Schutz der Bildschirminhalte der Nutzer verhindert Android 10 den stillen Zugriff auf die Bildschirminhalte des Geräts, indem der Umfang der READ_FRAME_BUFFER, CAPTURE_VIDEO_OUTPUT, und CAPTURE_SECURE_VIDEO_OUTPUT Berechtigungen geändert wird. Ab Android 10 ist der Zugriff auf diese Berechtigungen nur mit Signatur möglich.

Apps, die auf die Bildschirminhalte des Geräts zugreifen müssen, sollten die MediaProjection API verwenden, die eine Aufforderung anzeigt, in der der Nutzer um seine Einwilligung gebeten wird.

Nutzerseitige Berechtigungsprüfung für ältere Apps

Wenn Ihre App auf Android 5.1 (API-Level 22) oder niedriger ausgerichtet ist, sehen Nutzer beim ersten Verwenden Ihrer App auf einem Gerät mit Android 10 oder höher einen Berechtigungs bildschirm, wie in Abbildung 1 dargestellt. Auf diesem Bildschirm können Nutzer die Möglichkeit nutzen, den Zugriff auf Berechtigungen zu widerrufen, die das System Ihrer App zuvor bei der Installation gewährt hat.

Screenshot des Dialogfelds
Abbildung 1. Nutzerseitiges Dialogfeld, in dem ältere Berechtigungen
geprüft werden können

Erkennung körperlicher Aktivitäten

Android 10 führt die android.permission.ACTIVITY_RECOGNITION Laufzeitberechtigung für Apps ein, die die Schrittzahl des Nutzers erkennen oder die körperliche Aktivität des Nutzers klassifizieren müssen, z. B. Gehen, Radfahren oder Fahren in einem Fahrzeug. So können Nutzer in den Einstellungen sehen, wie Gerätesensordaten verwendet werden.

Einige Bibliotheken in den Google Play-Diensten, z. B. die Activity Recognition API und die Google Fit API, liefern nur dann Ergebnisse, wenn der Nutzer Ihrer App diese Berechtigung gewährt hat.

Die einzigen integrierten Sensoren auf dem Gerät, für die Sie diese Berechtigung deklarieren müssen, sind der Schritt zähler und Schritt detektor sensoren.

Wenn Ihre App auf Android 9 (API-Level 28) oder niedriger ausgerichtet ist, gewährt das System Ihrer App bei Bedarf automatisch die android.permission.ACTIVITY_RECOGNITION Berechtigung, wenn Ihre App alle folgenden Bedingungen erfüllt:

  • Die Manifestdatei enthält die com.google.android.gms.permission.ACTIVITY_RECOGNITION Berechtigung.
  • Die Manifestdatei enthält nicht die android.permission.ACTIVITY_RECOGNITION Berechtigung.

Wenn das System die android.permission.ACTIVITY_RECOGNITION Berechtigung automatisch gewährt, behält Ihre App die Berechtigung bei, nachdem Sie Ihre App auf Android 10 aktualisiert haben. Der Nutzer kann diese Berechtigung jedoch jederzeit in den Systemeinstellungen widerrufen.

Berechtigungsgruppen aus der Benutzeroberfläche entfernt

Ab Android 10 können Apps nicht mehr nachschlagen, wie Berechtigungen gruppiert in der Benutzeroberfläche sind.