Laufzeitberechtigungen in Android 6 und höher geben Benutzern die Kontrolle darüber, wann sie die Aufzeichnung von Audio vom Mikrofon eines Geräts oder Video von der Kamera eines Geräts zulassen. Bevor eine App aufzeichnen kann, muss ein Benutzer ihr über einen vom System angezeigten Dialog entweder die Berechtigung erteilen oder verweigern.
Android 12 bietet Benutzern Transparenz, indem es über die Kameras und Mikrofon -App-Op-Berechtigungen Indikatoren anzeigt, wenn eine App eine private Datenquelle verwendet. App-Ops zeichnen Zugriffe auf durch Laufzeitberechtigungen geschützte APIs auf.
App-op verfolgt sowohl den Aktivitätsstatus als auch die Anzahl einzelner API-Aufrufe und interagiert mit den Mikrofon- und Kameraanzeigen in Android 12, um Benutzern anzuzeigen, wenn Apps auf Audio- und Kameradaten auf ihren Geräten zugegriffen haben. Wenn Benutzer auf die Mikrofon- oder Kameraanzeigen klicken, sehen sie, welche Apps auf ihre Daten zugegriffen haben. Diese Funktion ist für alle OEMs obligatorisch.
Anforderungen an die Sichtbarkeit des Indikators
Dies sind die Anforderungen für Mikrofon- und Kameraanzeigen auf Geräten mit Android 12 oder höher:
- Die Indikatoren müssen in der Statusleiste erscheinen und die höchste visuelle Priorität behalten (z. B. ganz rechts in der oberen rechten Ecke).
- Die Anzeigen müssen stets an der gleichen Position angebracht sein und dürfen beim Start einer App nicht blockiert werden.
- Beide Indikatoren müssen eine grüne Farbe (oder eine Variation von Grün) haben.
- Wenn Sie auf einen oder beide Indikatoren klicken, muss eine Benachrichtigung über die Angebotszuordnung der Anwendung ausgegeben werden, die Folgendes bewirkt:
- Zeigt den Namen der App an, die das Mikrofon und (oder) die Kamera verwendet
- Zeigt den Namen der App an, die in den letzten 15 Sekunden das Mikrofon und (oder) die Kamera verwendet hat
- Leitet Benutzer zur App-Berechtigungsseite in den Einstellungen
Nutzung und Funktionen
In Android 12 unterscheidet die Benutzeroberfläche zwischen laufenden und aktuellen Nutzungen. Nutzungen gelten als „aktiv“, wenn sie entweder vom System als „laufend“ markiert sind oder weniger als 5 Sekunden alt sind.
- Symbole in der Statusleiste werden jedes Mal angezeigt, wenn eine App fortlaufend auf ein benutzerempfindliches Mikrofon oder eine Kamera zugreift.
- Benutzer können auf diese Symbole klicken und sehen, welche Apps auf das Mikrofon, die Kamera oder beides zugreifen.
Abbildung 1. Betriebsanzeigen für Mikrofon und Kamera, die den aktiven Zugriff anzeigen (obere rechte Ecke)
Der Zugriff gilt so lange als aktiv, wie die Indikatoren anzeigen. Zuerst wird ein Symbol angezeigt, das dann in einen Punkt übergeht, der bestehen bleibt, bis die App entweder geschlossen oder geschlossen wird.
Wenn ein Benutzer auf die Indikatoren tippt, wird ein Dialogfeld geöffnet, das anzeigt, dass eine App derzeit die Kamera, das Mikrofon oder beides verwendet.
Abbildung 2. Indikatoren für aktive und aktuelle Zugriffe
Das Bild in Abbildung 2 zeigt aktive Zugriffsindikatoren, wenn in den letzten 5 Sekunden von einer laufenden App auf Daten zugegriffen wurde.
Aktuelle Zugriffsindikatoren zeigen, dass eine App in den letzten 15 Sekunden auf Daten zugegriffen hat, die App jedoch nicht aktiv ist. Alle aktiven Apps werden im Dialog angezeigt, aber nur eine App wird als Quelle des letzten Zugriffs angezeigt, selbst wenn mehr als eine App innerhalb eines Zeitrahmens von 15 Sekunden auf Daten zugegriffen hat. Die Zugriffsansicht bleibt eingefroren, bis der Benutzer den Benachrichtigungsdialog schließt.
Liefern und aktivieren
Die PermissionManager
Klasse stellt eine Methode zum Füllen des Dialogfelds bereit, das sich in der Systembenutzeroberfläche befindet.
- Die Systembenutzeroberfläche reagiert auf einen Gerätekonfigurationswechsel:
privacy/mic_camera_indicators_enabled
. - Der Wechsel ist notwendig, da es zwei separate Lieferfahrzeuge gibt, in dieser Reihenfolge:
- Liefern.
- Aktivieren.
- Die Systembenutzeroberfläche darf nicht abstürzen, wenn die Methode in
PermissionManager
die erforderlichen Daten nicht bereitstellen kann.
Prozessablauf
Die Funktionalität des Berechtigungsindikators besteht aus drei Hauptteilen:
- Die Apps
- Die Indikatoren (verwaltet von SystemUI)
- Eine Möglichkeit, festzustellen, welche Apps die Daten verwenden
Der PermissionController
stellt den Mechanismus bereit, um zu bestimmen, welche Apps Daten verwenden. SystemUI wartet auf Apps, die private Daten verwenden. Die SystemUI zeigt in der oberen Navigationsleiste ein Symbol an, das den verwendeten Berechtigungen entspricht. Der PermissionController
zeigt Daten zu Nutzungen an, wenn ein Benutzer auf ein Symbol klickt.
Abbildung 3. Ablauf von Systemkomponenten und (UI-)Übergängen
Die nummerierten Übergänge in Abbildung 3 werden im Folgenden beschrieben:
1- Eine App fordert private Daten vom System an.
2- Das System prüft die Berechtigungen. Wenn die Berechtigungen zulässig sind, benachrichtigt das System den Datenanbieter und vermerkt die Nutzung in App-Ops
3- Der Datenanbieter gibt Daten an die App weiter.
4-5 Der Benutzer klickt auf die Symbole. Die System-Benutzeroberfläche fordert Daten vom PermissionManager
an und präsentiert dem Benutzer den Dialog.
Prozessdetails
- Apps nutzen das Mikrofon und die Kamera und rufen
AppOpsManager.startOp
,stopOp
und (oder)noteOp
auf. Dadurch werden App-Op-Datensätze auf dem Systemserver erstellt. - Die System-Benutzeroberfläche wartet mithilfe der Listener
AppOpsManager.OnOpActiveChangedInternalListener
undOnOpNotedListener
auf neue App-Ops. Wenn eine neue Nutzung eingeht (durch einen Aufruf vonstartOp
odernoteOp
), überprüft die System-Benutzeroberfläche, ob die Nutzung durch eine System-App erfolgt. - Wenn die System-Benutzeroberfläche die System-App-Nutzung überprüft und die Verwendung für das Mikrofon erfolgt, prüft die System-Benutzeroberfläche, ob das Mikrofon stummgeschaltet ist.
- Wenn die System-Benutzeroberfläche die Verwendung von Nicht-System-Apps überprüft (und bei Verwendung des Mikrofons überprüft, ob das Mikrofon nicht stummgeschaltet ist; bei Verwendung der Kamera, ob die Kamera eingeschaltet ist), wird ein Symbol angezeigt, das diese Verwendung widerspiegelt.
Wenn die System-Benutzeroberfläche einen noteOp
empfängt, der keine Dauer hat, wird das Symbol mindestens 5 Sekunden lang angezeigt. Andernfalls wird das Symbol entweder angezeigt, bis ein stopOp
empfangen wird, oder für 5 Sekunden, je nachdem, welcher Zeitraum länger ist. Der Benutzer, der auf ein Symbol klickt, initiiert eine Absicht, die zum PermissionController
geht, um den Dialog zu starten.
Der PermissionController
lädt alle aktuellen Nutzungen für Mikrofon und Kamera. Es prüft, ob einige davon gerade ausgeführt werden oder innerhalb des von der System-Benutzeroberfläche festgelegten Zeitrahmens ausgeführt wurden. Wenn eine Übereinstimmung gefunden wird, werden der Name der App, die die Berechtigung verwendet hat, und die von der App verwendeten Berechtigungen angezeigt.
Aufgrund dieser Änderung in Android 12 und höher müssen einige Apps entweder ihr Verhalten ändern oder ein spezielles Verhalten implementieren.
Die Telefonie muss die Berechtigungsnutzung implementieren (um den separaten Mikrofonstapel zu berücksichtigen, der bei Telefonanrufen verwendet wird), während sie mit der Android Google Search App (AGSA) und Google Mobile Services (GMS) arbeitet.