Die Berechtigungen für Standort, Mikrofon und Kamera gewähren Ihrer App Zugriff auf besonders vertrauliche Nutzerinformationen. Die Plattform umfasst mehrere Mechanismen, die auf dieser Seite beschrieben werden und Nutzern helfen, informiert zu bleiben und die Kontrolle darüber zu behalten, welche Apps auf Standort, Mikrofon und Kamera zugreifen können.
Diese datenschutzfreundlichen Systemfunktionen sollten sich nicht auf die Art und Weise auswirken, wie Ihre App die Berechtigungen für Standort, Mikrofon und Kamera verarbeitet, solange Sie Best Practices für den Datenschutz einhalten.
Achten Sie insbesondere darauf, dass Sie in Ihrer App Folgendes tun:
- Warten Sie mit dem Zugriff auf die Kamera des Geräts, bis der Nutzer Ihrer App die Berechtigung
CAMERA
erteilt hat. - Warten Sie mit dem Zugriff auf das Mikrofon des Geräts, bis der Nutzer Ihrer App die Berechtigung
RECORD_AUDIO
erteilt hat. - Warten Sie, bis der Nutzer mit einer Funktion in Ihrer App interagiert, für die der Standort erforderlich ist, bevor Sie die Berechtigung
ACCESS_COARSE_LOCATION
oderACCESS_FINE_LOCATION
anfordern. Weitere Informationen finden Sie in der Anleitung zum Anfordern von Berechtigungen zur Standortermittlung. - Warten Sie, bis der Nutzer Ihrer App entweder die Berechtigung
ACCESS_COARSE_LOCATION
oder die BerechtigungACCESS_FINE_LOCATION
erteilt hat, bevor Sie die BerechtigungACCESS_BACKGROUND_LOCATION
anfordern.
Privatsphäredashboard
Auf unterstützten Geräten mit Android 12 oder höher wird in den Systemeinstellungen der Bildschirm „Datenschutz-Dashboard“ angezeigt. Auf diesem Bildschirm können Nutzer auf separate Bildschirme zugreifen, auf denen angezeigt wird, wann Apps auf Standort-, Kamera- und Mikrofoninformationen zugreifen. Auf jedem Bildschirm wird eine Zeitachse angezeigt, auf der zu sehen ist, wann verschiedene Apps auf einen bestimmten Datentyp zugegriffen haben. Abbildung 1 zeigt den Zeitplan für den Datenzugriff auf Standortinformationen.
Begründung für Datenzugriff anzeigen
Ihre App kann Nutzern eine Begründung liefern, damit sie verstehen, warum Ihre App auf Standort-, Kamera- oder Mikrofoninformationen zugreift. Diese Begründung kann auf dem neuen Privatsphäredashboard, auf dem Berechtigungsbildschirm Ihrer App oder auf beiden angezeigt werden.
So erklären Sie, warum Ihre App auf Standort-, Kamera- und Mikrofoninformationen zugreift:
Fügen Sie eine Aktivität hinzu, die beim Starten eine Begründung dafür liefert, warum Ihre App eine bestimmte Art von Datenzugriffsaktion ausführt. Legen Sie in dieser Aktivität das Attribut
android:permission
aufSTART_VIEW_PERMISSION_USAGE
fest.Wenn Ihre App auf Android 12 oder höher ausgerichtet ist, müssen Sie explizit einen Wert für das Attribut
android:exported
definieren.Fügen Sie der neu hinzugefügten Aktivität den folgenden Intent-Filter hinzu:
<!-- android:exported required if you target Android 12. --> <activity android:name=".DataAccessRationaleActivity" android:permission="android.permission.START_VIEW_PERMISSION_USAGE" android:exported="true"> <!-- VIEW_PERMISSION_USAGE shows a selectable information icon on your app permission's page in system settings. VIEW_PERMISSION_USAGE_FOR_PERIOD shows a selectable information icon on the Privacy Dashboard screen. --> <intent-filter> <action android:name="android.intent.action.VIEW_PERMISSION_USAGE" /> <action android:name="android.intent.action.VIEW_PERMISSION_USAGE_FOR_PERIOD" /> <category android:name="android.intent.category.DEFAULT" /> ... </intent-filter> </activity>
Legen Sie fest, was in der Aktivität „Begründung für den Datenzugriff“ angezeigt werden soll. Sie können beispielsweise die Website Ihrer App oder einen Hilfeartikel anzeigen. Um eine detailliertere Erklärung zu den Arten von Daten zu geben, auf die Ihre App zugreift, sowie dazu, wann der Zugriff erfolgt ist, müssen Sie die Extras verarbeiten, die das System beim Aufrufen des Intents zur Berechtigungsnutzung einfügt:
- Wenn das System
ACTION_VIEW_PERMISSION_USAGE
aufruft, kann Ihre App einen Wert fürEXTRA_PERMISSION_GROUP_NAME
abrufen. - Wenn das System
ACTION_VIEW_PERMISSION_USAGE_FOR_PERIOD
aufruft, kann Ihre App Werte fürEXTRA_PERMISSION_GROUP_NAME
,EXTRA_ATTRIBUTION_TAGS
,EXTRA_START_TIME
undEXTRA_END_TIME
abrufen.
- Wenn das System
Je nachdem, welche Intent-Filter Sie hinzufügen, sehen Nutzer auf bestimmten Bildschirmen ein Informationssymbol neben dem Namen Ihrer App:
- Wenn Sie den Intent-Filter mit der
VIEW_PERMISSION_USAGE
-Aktion hinzufügen, sehen Nutzer das Symbol auf der Seite mit den Berechtigungen Ihrer App in den Systemeinstellungen. Sie können diese Aktion auf alle Laufzeitberechtigungen anwenden. - Wenn Sie den Intent-Filter mit der Aktion
VIEW_PERMISSION_USAGE_FOR_PERIOD
hinzufügen, sehen Nutzer das Symbol neben dem Namen Ihrer App, wenn Ihre App auf dem Bildschirm „Datenschutz-Dashboard“ angezeigt wird.
Wenn Nutzer dieses Symbol auswählen, wird die Begründungsaktivität Ihrer App gestartet.
Kennzeichnung
Auf Geräten mit Android 12 oder höher wird in der Statusleiste ein Symbol angezeigt, wenn eine App auf das Mikrofon oder die Kamera zugreift. Wenn sich die App im Immersive Mode befindet, wird das Symbol oben rechts auf dem Bildschirm angezeigt. Nutzer können die Schnelleinstellungen öffnen und das Symbol auswählen, um zu sehen, welche Apps derzeit das Mikrofon oder die Kamera verwenden. Abbildung 2 zeigt ein Beispiel für einen Screenshot, der die Symbole enthält.
Position von Anzeigen auf dem Bildschirm ermitteln
Wenn Ihre App den immersiven Modus oder eine Vollbild-Benutzeroberfläche unterstützt, können sich die Anzeigen vorübergehend mit der Benutzeroberfläche Ihrer App überschneiden. Damit Sie Ihre Benutzeroberfläche an diese Indikatoren anpassen können, führt das System die Methode getPrivacyIndicatorBounds()
ein, die im folgenden Code-Snippet veranschaulicht wird. Mit dieser API können Sie die Grenzen ermitteln, innerhalb derer die Indikatoren angezeigt werden können. Möglicherweise möchten Sie dann die Benutzeroberfläche Ihres Bildschirms anders organisieren.
Kotlin
view.setOnApplyWindowInsetsListener { view, windowInsets -> val indicatorBounds = windowInsets.getPrivacyIndicatorBounds() // change your UI to avoid overlapping windowInsets }
Toggles
Auf unterstützten Geräten mit Android 12 oder höher können Nutzer den Kamera- und Mikrofonzugriff für alle Apps auf dem Gerät mit einem einzigen Schalter aktivieren und deaktivieren. Nutzer können über die Schnelleinstellungen (siehe Abbildung 3) oder über den Bildschirm „Datenschutz“ in den Systemeinstellungen auf die einstellbaren Optionen zugreifen.
Die Ein/Aus-Schaltflächen für Kamera und Mikrofon wirken sich auf alle Apps auf dem Gerät aus:
- Wenn der Nutzer den Kamerazugriff deaktiviert, erhält Ihre App einen leeren Kamerafeed.
Wenn der Nutzer den Mikrofonzugriff deaktiviert, empfängt Ihre App stummes Audio. Außerdem werden Bewegungssensoren ratenbegrenzt, unabhängig davon, ob Sie die Berechtigung
HIGH_SAMPLING_RATE_SENSORS
deklarieren.
Wenn der Nutzer den Zugriff auf die Kamera oder das Mikrofon deaktiviert und dann eine App startet, die Zugriff auf Kamera- oder Mikrofoninformationen benötigt, erinnert das System den Nutzer daran, dass die geräteweite Ein/Aus-Schaltfläche deaktiviert ist.
Gerätesupport prüfen
Wenn Sie prüfen möchten, ob ein Gerät die Ein/Aus-Schalter für Mikrofon und Kamera unterstützt, fügen Sie die Logik aus dem folgenden Code-Snippet hinzu:
Kotlin
val sensorPrivacyManager = applicationContext .getSystemService(SensorPrivacyManager::class.java) as SensorPrivacyManager val supportsMicrophoneToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.MICROPHONE) val supportsCameraToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.CAMERA)
Java
SensorPrivacyManager sensorPrivacyManager = getApplicationContext() .getSystemService(SensorPrivacyManager.class); boolean supportsMicrophoneToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.MICROPHONE); boolean supportsCameraToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.CAMERA);