Android-Rollen

Eine Rolle ist ein eindeutiger Name innerhalb des Systems, der mit bestimmten Berechtigungen und Berechtigungen verknüpft ist. Anwendungen können bestimmte Rollen über die Android API anfordern, indem sie Methoden in der Klasse RoleManager aufrufen.

In der folgenden Liste finden Sie die verfügbaren Rollen und die entsprechenden Anforderungen.

Rolle Voraussetzungen
ASSISTENT Mindestens eines der folgenden Elemente:
  • Die App enthält eine Aktivität, die unterstützende Aktionen durchführt. Dabei werden die Informationen zum Kontext des Nutzers zum Zeitpunkt der Anfrage der Unterstützung berücksichtigt, z. B. der Paketname der aktuellen App im Vordergrund und deren Kontextinformationen.
  • Die App hat einen immer aktiven Sprachinteraktionsdienst mit der Berechtigung android.permission.BIND_VOICE_INTERACTION, der Spracherkennung ausführen und aktive Sprachinteraktionssitzungen hosten kann. Darüber hinaus hat die App ein explizites Flag, das angibt, dass der Dienst die unterstützende Aktion verarbeiten kann.
Browser Alle:
  • Die Anwendung hat eine Aktivität, die von Apps über implizite Intent-Anfragen aufgerufen werden kann und die eine Webseite anzeigt, die einer http://-Adresse entspricht.
  • Die App muss die Navigation zwischen Links übernehmen. Wenn der Nutzer also eine Webseite aufruft und im Text auf eine http://-Adresse klickt, muss die App die Inhalte für den ausgewählten Link ohne zusätzlichen Nutzereingriff anzeigen können.
  • Die App muss die aktuellen Standortdaten des Geräts an Webseiten bereitstellen können, wenn sie angefordert wird und der Nutzer die Anfrage genehmigt.
Telefon Alle:
  • Die App hat eine Aktivität, die Apps durch implizite Intent-Anfragen aufrufen können und die während eines Anrufs die Benutzeroberfläche während des Aufrufs bereitstellt.
  • Die App kann eingehende Anruf-Intents verarbeiten, dem Nutzer Informationen im Zusammenhang mit dem Anruf anzeigen (z. B. die Telefonnummer des Anrufers) und dem Nutzer ermöglichen, den Anruf anzunehmen oder abzulehnen.
  • Die App bietet dem Nutzer die Möglichkeit, auf seinem Gerät Anrufe zu starten und einen Anrufverlauf anzusehen.
SMS Alle:
  • Die Anwendung erfüllt alle Anforderungen für SMS-Anwendungen.
  • Die Anwendung hat eine Aktivität, die sie über implizite Intent-Anfragen aufrufen und eine Nachricht an eine Telefonnummer senden kann.
  • Die App hat einen Dienst, der durch die Berechtigung android.permission.SEND_RESPOND_VIA_MESSAGE beschränkt und durch implizite Intents aufgerufen werden kann. Er kann Nachrichten senden, die von der Telefon App empfangen werden, wenn der Nutzer sich während eines eingehenden Anrufs für eine Antwort per Nachricht entscheidet. Die Anwendung kann Nachrichten über ihr eigenes Nachrichtensystem zustellen.
  • Die App hat zwei Übertragungsempfänger, einen mit der Berechtigung android.permission.BROADCAST_SMS und einen mit der Berechtigung android.permission.BROADCAST_WAP_PUSH. Diese Empfänger können textbasierte SMS und MMS empfangen, die jeweils an das Gerät gesendet wurden. Die Anwendung ist dann dafür verantwortlich, die Nachrichten an den SMS-Anbieter zu schreiben und die Nutzer zu benachrichtigen.
NOTFALL Alle:
  • Die Anwendung ist eine Systemanwendung.
  • Die App hat eine Aktivität, die Notfallinformationen des Nutzers anzeigt. Jeder kann diesen Bildschirm über die Schaltfläche „Notfall“ in der Aktivität „Notruf“ aufrufen.
ZUHAUSE Die App hat eine Aktivität, durch die der Startbildschirm gestartet werden kann, wenn der Nutzer die Startbildschirmtaste drückt. Der Startbildschirm sollte App-Symbole und Widgets enthalten und eine Navigation auf Grundlage von Schaltflächen oder Touch-Gesten unterstützen, z. B. Wischen nach oben, um alle Apps zu sehen.
ANRUF_UMLEITUNG Die App hat einen Dienst mit der Berechtigung android.permission.BIND_CALL_REDIRECTION_SERVICE, an den sich das Telekommunikations-Framework binden kann. Der Dienst empfängt die ausgehende Telefonnummer vom Telekommunikations-Framework und führt eine der folgenden Aktionen aus:
  • Zulassen, dass der Anruf in der vorliegenden Form getätigt wird.
  • Sie können die ausgehende Nummer so ändern, dass sie über eine Proxynummer geleitet wird.
  • Brechen Sie den Anruf ab.
ANRUF-SCREENING Die App hat einen Dienst mit der Berechtigung android.permission.BIND_SCREENING_SERVICE, der zwei Funktionen ausführt:
  1. Anrufblockierung/-filter:Der Dienst kann festlegen, welche Anrufe an die Telefon-App auf dem Smartphone weitergeleitet (und bei gegebener Ablehnung/Lautstärke möglicherweise auch klingeln) und welche lautlos an die Mailbox weitergeleitet werden sollen.
  2. Anruferkennung:Der Dienst kann Informationen zu einem Anruf über eine Benutzeroberfläche identifizieren und anzeigen.
SYSTEM_GALLERY Alle:
  • Die Anwendung ist eine Systemanwendung.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Die Anwendung bietet eine Benutzeroberfläche, auf der Nutzer ihre Videos und Bilder speichern, organisieren und anzeigen können.
SYSTEM_AUTOMOTIVE_CLUSTER Alle:
  • Die App ist eine System-App in Automotive.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Die App bietet Funktionen für ein Automotive-Cluster-Display (in der Regel neben dem Lenkrad), über das Nutzer Anrufe annehmen und auf Kontaktlisten und Anruflisten zugreifen können.
COMPANION_DEVICE_WATCH Die App kann Anfragen zur Verknüpfung mit einem Smartwatch-Gerät und zum Verwalten dieser Anfragen stellen. Dazu wird die von der Klasse CompanionDeviceManager bereitgestellte API verwendet. Sobald die Uhr und die App über die von der App bereitgestellte Benutzeroberfläche verbunden sind, können die Nutzer ihre Uhr über die App verwalten, einschließlich der Synchronisierung von Kontakten und Kalendern sowie der Verwaltung von Benachrichtigungen und Telefonanrufen.
SYSTEM_AUTOMOTIVE_PROJEKTION Alle:
  • Die Anwendung ist eine Systemanwendung.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Über die App kann der Smartphone-Bildschirm auf das Fahrzeugdisplay projiziert werden. Damit können Fahrer Apps auf Android-Smartphones wie Musik, Navigation, Anrufe und die Google-Suche über Eingabemechanismen am Fahrzeug wie Touchbedienung, Lenkradsteuerung und Sprachbefehle steuern.
SYSTEM_SHELL Alle:
  • Die Anwendung ist eine Systemanwendung, der die UID Process.SHELL_UID zugewiesen ist.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Die App bietet eine Schnittstelle, die auf Befehlszeilenebene arbeitet, damit Nutzer mit dem Android-Betriebssystem interagieren können. Beispiele: Anzeigen des Inhalts eines Ordners oder Starten von Apps. Shell-Befehle können programmatisch von Anwendungen (sofern die erforderlichen Berechtigungen gewährt wurden) oder über das ADB-Tool ausgeführt werden.
SYSTEM_KONTAKTE Alle:
  • Die Anwendung ist eine Systemanwendung.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Die App bietet eine Benutzeroberfläche, über die Nutzer ihre Kontakte verwalten (z. B. Kontakte ansehen, freigeben, hinzufügen, entfernen oder suchen können). Die App aktualisiert den Kontaktanbieter, wenn der Nutzer seine Kontakte über die App aktualisiert. Nutzer können über die App auch ihre Kontakte anrufen, ihnen eine E-Mail senden oder SMS an sie senden.
SYSTEM_SPEECH_RECOGNIZER Alle:
  • Die Anwendung ist eine Systemanwendung.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Die App bietet einen Dienst zur Spracherkennung.
  • Wenn die App zur Spracherkennung Livestream-Livestreams von einer anderen App empfängt, ordnet sie die Mikrofonnutzung der aufrufenden App korrekt zu und aktualisiert die App-Betriebsstatistiken entsprechend.
SYSTEM_WIFI_COEX_MANAGER Alle:
  • Die Anwendung ist eine Systemanwendung.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Die App hat einen Dienst, der dynamisch eine Liste von WLAN-Kanälen festlegt, die das Gerät aufgrund von Mobilfunkstörungen nicht verwenden sollte.
SYSTEMWELLBEING Alle:
  • Die Anwendung ist eine Systemanwendung.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Die App sollte Nutzern Funktionen zur Verfügung stellen, mit denen sie nicht abgelenkt werden, und statistische Daten darüber erhalten, wie sie ihr Gerät verwenden (z. B. ihre Bildschirmzeit pro Woche).
SYSTEM_TELEVISION_NOTIFICATION_HANDLER Alle:
  • Die Anwendung ist eine Systemanwendung.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Die App muss Nutzern von Fernsehern Vorabbenachrichtigungen anzeigen. Die App muss auch derzeit aktive Benachrichtigungen anzeigen, wenn der Intent android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL (von der SystemUI) gesendet wird.
SYSTEM_COMPANION_DEVICE_PROVIDER Alle:
  • Die Anwendung ist eine Systemanwendung.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Die App muss Peripheriegeräte in der Nähe erkennen können. Es muss eine UI haben, auf der der Nutzer bestätigen kann, dass ein bestimmtes Peripheriegerät mit einer App verknüpft und von ihr verwaltet werden soll. Sobald der Nutzer dies bestätigt, gewährt die verwaltende App der zugehörigen App die Berechtigung, auf das Peripheriegerät zuzugreifen (z. B. auf Name, Adresse, Klasse und Bindungsstatus), und sie kann den Verknüpfungsvorgang starten.
SYSTEM_DOCUMENT_MANAGER Alle:
  • Die Anwendung ist eine Systemanwendung.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Die App verfügt über eine Aktivität, mit der Nutzer auf vorhandene Dokumente zugreifen und neue Dokumente auf dem Gerät erstellen können.
  • Die App muss alle im Android-CDD-Abschnitt 2.2.3. Software unter der Überschrift [3.2.3.1/H-0-1].
SYSTEM_AKTIVITÄT_RECOGNIZER Alle:
  • Die Anwendung ist eine Systemanwendung.
  • Die App hat einen durch android.permission.ACTIVITY_RECOGNITION getrennten Dienst, der eine Aktivitätserkennung (z. B. Laufen oder Radfahren) durchführen kann.
SYSTEM_UI Alle:
  • Die Anwendung ist eine Systemanwendung.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Die App verfügt über eine Benutzeroberfläche, über die Nutzer mit ihren Smartphones interagieren können. Beispiele: Hauptbildschirm des Smartphones, Navigation, zuletzt verwendete Apps, Schnelleinstellungen, Benachrichtigungsleiste, Sperrbildschirm, Lautstärkeregelung.
SYSTEM_TELEVISION_REMOTE_SERVICE Alle:
  • Die App ist eine System-App auf Android TV.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Die App verfügt über einen Dienst, der mit dem HID-Gerät der TV-Fernbedienung kommunizieren (z. B. über BLE), Ereignisse (z. B. Klicks auf Schaltflächen) einfügen und andere Daten (z. B. Audiostreams von einem in die Fernbedienung integrierten Mikrofon) an die Plattform senden kann.
SYSTEM_UI_INTELLIGENZ Alle:
  • Ein vorinstallierter Dienst, der über Framework-APIs (öffentliche oder System-APIs) einen intelligenten Prozessor für System-UI-Funktionen auf dem Gerät bietet (z. B. die Vorhersage und Anzeige der nächsten Apps für die Nutzer).
  • Der Dienst muss alle Anforderungen erfüllen, die im Abschnitt 9.8.6 Erfassung von Inhalten der CDD für Android aufgeführt sind.
  • Es darf nicht die Berechtigung android.permission.INTERNET haben. Stattdessen muss sie in einem Open-Source-Projekt über klar definierte APIs auf das Internet zugreifen.
  • Eine Bindung an Apps ist mit Ausnahme der folgenden System-Apps nicht möglich: Bluetooth, Kontakte, Medien, Telefonie, SystemUI und Komponenten, die Internet-APIs bereitstellen. Jede zulässige Bindung muss explizit über die <allow-association>-Konfiguration in der Systemkonfiguration eingerichtet werden.
  • Daten können nur dann an Apps weitergegeben werden, wenn eine direkte Nutzeraktion erfolgt (z. B. drückt der Nutzer jedes Mal explizit eine Schaltfläche, wenn die Daten weitergegeben werden).
SYSTEM_AMBIENT_AUDIO_INTELLIGENZ Alle:
  • Identisch mit den Bedingungen für SYSTEM_UI_INTELLIGENCE, mit dem Unterschied, dass der vorinstallierte Dienst einen intelligenten Prozessor für Umgebungsgeräusche auf dem Gerät bietet (z. B. zur Erkennung von Musiktiteln, die in der Nähe des Geräts abgespielt werden).
SYSTEM_AUDIO_INTELLIGENZ Alle:
  • Identisch mit den Bedingungen für SYSTEM_UI_INTELLIGENCE, mit der Ausnahme, dass der vorinstallierte Dienst einen intelligenten Prozessor für Audio auf dem Gerät bietet (z. B. Untertitel für Videos, Podcasts, Telefonanrufe, Videoanrufe und Sprachnachrichten).
SYSTEM_BENACHRICHTIGUNG Alle:
  • Identisch mit den Bedingungen für SYSTEM_UI_INTELLIGENCE, mit der Ausnahme, dass der vorinstallierte Dienst einen intelligenten Prozessor auf dem Gerät für Benachrichtigungen bietet (z. B. Vorschläge für Antworten und Aktionen für Benachrichtigungen bei Nachrichten).
SYSTEM_TEXT_INTELLIGENZ Alle:
  • Identisch mit den Bedingungen für SYSTEM_UI_INTELLIGENCE, mit dem Unterschied, dass der vorinstallierte Dienst einen intelligenten Prozessor auf dem Gerät für Text bietet (z. B. Live-Übersetzung oder Autofill).
SYSTEM_VISUAL_INTELLIGENCE Alle:
  • Identisch mit den Bedingungen für SYSTEM_UI_INTELLIGENCE, mit der Ausnahme, dass der vorinstallierte Dienst einen intelligenten Prozessor auf dem Gerät für visuelle Funktionen bietet, die die Analyse von Kameradaten beinhalten. Beispielsweise kannst du dafür sorgen, dass der Bildschirm des Smartphones aktiv bleibt, während der Nutzer darauf schaut, oder anhand der Gesichtsausrichtung des Nutzers anhand der Frontkamera des Geräts die ideale Bildschirmausrichtung ermitteln.
APP_STREAMING_COMPANION_DEVICE_APP_STREAMING Alle:
  • Die Anwendung ist eine Systemanwendung.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Die App kann Kommunikationskanäle mit verbundenen Geräten erstellen und verwalten, damit diese Daten austauschen können. Die Anwendung und die verbundenen Geräte müssen sich gegenseitig erfolgreich authentifizieren (z. B. durch Nachweis ihrer Kenntnisse über freigegebene Schlüssel), um diese Kommunikationskanäle einzurichten. Die Kommunikationskanäle müssen einen Verschlüsselungsschutz haben.
  • Die App kann Benachrichtigungen vom lokalen Gerät an das verbundene Gerät senden, damit der Nutzer die Benachrichtigungen auf dem verbundenen Gerät bearbeiten kann.
  • In der Lage sein, die für das App-Streaming erforderlichen Metadaten auf das verbundene Gerät zu streamen, z. B. die Liste der auf dem lokalen Gerät verfügbaren Apps.
  • Apps müssen vom lokalen Gerät auf das verbundene Gerät gestreamt werden können, nachdem der Nutzer seine Einwilligung ausdrücklich erteilt hat (entweder über das Smartphone oder über das verbundene Gerät).
  • In der Lage sein, Ereignisse, die in einer gestreamten App auf einem verbundenen Gerät auf dem lokalen Gerät auftreten, wiederzugeben (injizieren). Beispiel: Wiedergeben eines Touch-Ereignisses auf dem Tablet mit denselben Koordinaten auf dem Smartphone.
  • Die App kann den Mikrofonstream des lokalen Geräts durch den Mikrofonstream eines verbundenen Geräts ersetzen, während eine gestreamte App das Mikrofon verwendet.
  • Die App erfasst Audio vom Gerät und streamt es auf das verbundene Gerät.
  • Der Kamerastream des lokalen Geräts muss blockiert werden, während die Kamera von einer gestreamten App verwendet wird.
  • Die Integrität des Betriebssystem-Builds des verbundenen Geräts muss geprüft werden, z. B. durch Verwendung der Geräteattestierung wie in VerifiedBootState.
  • Streamen Sie auf beiden Geräten nur Apps, bei denen es nur ein übereinstimmendes Konto in der On-Device-Konto-Registry gibt (z. B. AccountManager unter Android). Ist dies nicht der Fall, muss das Streaming mit einem einmaligen Code autorisiert werden, der auf dem Quellgerät angezeigt und auf dem verbundenen Gerät eingegeben wird. Im Fall von Geräten, die mehrere Nutzer (und nicht mehrere Konten) mit derselben zuverlässigen Datenisolierung wie bei Android-Mehrnutzern unterstützen, zählt ein Nutzer als Gerät.
  • Wenn die Authentifizierung des Kontos auf dem verbundenen Gerät abläuft oder widerrufen wird, muss das Streaming sofort beendet und die Verbindung zu einem verbundenen Gerät getrennt werden.
  • Vor und während des Streamings muss geprüft werden, ob sich ein verbundenes Gerät innerhalb der Bluetooth-Reichweite des lokalen Geräts befindet.
  • Laufende App-Streaming-Sitzungen müssen getrennt werden, wenn der Nutzer 5 Minuten lang nicht mit dem verbundenen Gerät interagiert, z. B. wenn Tastatur, Touchscreen und Maus inaktiv sind. Videostreaming-Apps sind von dieser Anforderung ausgenommen.
  • Wenn das Quellgerät den Lockscreen Knowledge Factor (LSKF) verwendet, darf die App bei gesperrtem Display keine Apps auf ein verbundenes Gerät streamen, es sei denn, dieses Gerät hat einen Sperrbildschirm und ist entsperrt.
  • Wenn das Gerät von einem Administrator verwaltet wird, muss die App die vom Administrator festgelegten Richtlinien zum Aktivieren oder Deaktivieren des App-Streamings auf Geräte in der Nähe einhalten, z. B. über die DevicePolicyManager-Einstellungen in Android.
  • Das Remote-Display und alle Quellen von Remote-Eingabeereignissen müssen aus Nutzersicht zum selben logischen Gerät gehören (z. B. ein Remote-Display und eine angeschlossene Tastatur), sodass Ereignisse entsprechend weitergeleitet werden.
  • Der Nutzer muss das Streaming vom lokalen Gerät beenden können, beispielsweise über eine Schaltfläche in einer dauerhaften Benachrichtigung. Dieses Verhalten wird durch den Sperrbildschirm gesteuert, wenn für das Smartphone eine Displaysperre eingerichtet ist.
  • Wenn das Streaming auf einem anderen Gerät stattfindet, muss auf dem Quellgerät eine Angebote angezeigt werden, z. B. ein Symbol in der Statusleiste oder eine dauerhafte Benachrichtigung.
DEVICE_POLICY_MANAGEMENT Alle:
  • Nur OEMs können der App diese Rolle zuweisen. Apps können diese Rolle nicht anfordern, da sie standardmäßig dem Paketnamen zugewiesen werden soll, den der OEM beim Versand des Geräts festgelegt hat.
  • Die App muss in der Lage sein, ein verwaltetes Profil (Profilinhaber) oder ein verwaltetes Gerät (Geräteinhaber) bereitzustellen. Dazu gehört auch das Herunterladen/Installieren des entsprechenden Device Policy-Clients, um ggf. als Geräte-/Profilinhaber zu sein.
  • Die App kann Ressourcen wie Strings und Drawables für die Verwaltung von Geräterichtlinien optional dynamisch aktualisieren.
  • Die Anwendung kann entweder eine vorinstallierte System-App sein oder vor der Bereitstellung heruntergeladen und installiert werden.
  • Wenn die Rolleninhaber-App bei der Bereitstellung von Profilinhabern auf einem bestimmten Android-Nutzer installiert ist, muss sie in allen anwendbaren Profilen dieses Nutzers installiert werden.
SYSTEM_APP_PROTECTION_SERVICE Alle:
  • Die Anwendung ist eine Systemanwendung.
  • Die App dient nur dazu, potenziell schädliche Apps (Apps, die Nutzer, Nutzerdaten oder Geräte gefährden könnten, z. B. Trojaner, Phishing- und Spyware-Apps) oder unerwünschte Software für Mobilgeräte zu erkennen.
  • Die App muss alle im Android-CDD-Abschnitt 9.8.6. Daten auf Betriebssystemebene und Umgebungsdaten.
  • Die normale Berechtigung android.permission.INTERNET darf nicht deklariert werden. Stattdessen muss sie in einem Open-Source-Projekt über klar definierte APIs auf das Internet zugreifen.
  • Sie darf nicht an Anwendungen gebunden werden, mit Ausnahme der folgenden Systemanwendungen: des Permission Controllers und Komponenten, die Telefonie und Internet APIs bereitstellen. Jede zulässige Bindung muss explizit über die <allow-association>-Konfiguration in der Systemkonfiguration eingerichtet werden.
  • Daten dürfen nur dann an Apps weitergegeben werden, wenn eine direkte Nutzeraktion erfolgt (z. B. drückt der Nutzer jedes Mal explizit auf eine Schaltfläche, wenn die Daten weitergegeben werden).
SYSTEM_AUTOMOTIVE_KALENDER – SYNC_MANAGER Alle:
  • Die Anwendung ist eine Systemanwendung.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Kalenderdaten müssen vom iOS- oder Android-Smartphone des Nutzers auf das Android Auto-Gerät übertragen werden. Das Android Auto-Gerät muss diese Kalenderdaten im Kalenderanbieter speichern.
  • Die App muss eine UI-Komponente auf dem Smartphone bieten, mit dem der Nutzer die Kalendersynchronisierung aktivieren und die zu synchronisierenden Kalender auswählen kann. Die App muss eine UI-Komponente auf dem Smartphone bieten, mit dem der Nutzer die Kalendersynchronisierung deaktivieren kann.
  • Sollte ohne Internetverbindung funktionieren. Zum Beispiel über direkte kabelgebundene oder drahtlose Verbindungen.
AUTOMOTIV_NAVIGATION Alle:
  • Die Anwendung hat eine Aktivität, die den aktuellen Standort und die Umgebung des Nutzers anzeigt, die von Apps über implizite Intent-Anfragen aufgerufen werden kann.
  • Die App hat eine Aktivität, die Apps durch implizite Intent-Anfragen aufrufen können und die es dem Nutzer ermöglicht, zu einem bestimmten geografischen Standort zu navigieren.
  • eine Aktivität hat, die auf dem Kombi-Instrument gestartet wird, wenn die App den Navigationsfokus hält. Die Aktivität muss den aktuellen Standort des Nutzers und seine Umgebung zeigen und es ihm ermöglichen, zu einem bestimmten geografischen Standort zu navigieren.
COMPANION_DEVICE_COMPUTER Alle:
  • Die Anwendung ist eine Systemanwendung.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Nutzern erlauben, Benachrichtigungen zu spiegeln und auf einem verbundenen Computer über das Smartphone auf Fotos und Medien zuzugreifen.
SYSTEM_EINSTELLUNGEN_INTELLIGENZ Mindestens eines der folgenden Elemente:
  • Die Anwendung ist eine Systemanwendung.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Hat einen Dienst, der intelligente Funktionen für die App „Einstellungen“ bietet, z. B. Vorschläge und Suche.
HINWEISE Alle:
COMPANION_DEVICE_GLASSES Die App kann Anfragen zur Verknüpfung mit einem Brillengerät senden und diese verwalten. Dazu wird die von der Klasse CompanionDeviceManager bereitgestellte API verwendet. Sobald die Brillengeräte und die App über die von CDM bereitgestellte UI verbunden sind, können Nutzer ihr Brillengerät verwalten, indem sie ihnen Zugriff auf Kontakte und die Berechtigung zur Verwaltung von Benachrichtigungen und Telefonanrufen gewähren.
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING Alle:
  • Die Anwendung ist eine Systemanwendung.
  • Nur OEMs können der App diese Rolle zuweisen.
  • Die App kann Kommunikationskanäle mit verbundenen Geräten erstellen und verwalten, sodass die Geräte Daten austauschen können. Die Anwendung und die verbundenen Geräte müssen sich gegenseitig erfolgreich authentifizieren (z. B. durch Nachweis ihrer Kenntnisse über freigegebene Schlüssel), um diese Kommunikationskanäle einzurichten. Die Kommunikationskanäle müssen einen Verschlüsselungsschutz haben.
  • Die App kann Benachrichtigungen vom lokalen Gerät an das verbundene Gerät senden, damit der Nutzer die Benachrichtigungen auf dem verbundenen Gerät bearbeiten kann.
  • In der Lage sein, die für das App-Streaming erforderlichen Metadaten auf das verbundene Gerät zu streamen, z. B. die Liste der auf dem lokalen Gerät verfügbaren Apps.
  • Apps müssen vom lokalen Gerät auf das verbundene Gerät gestreamt werden können, nachdem der Nutzer seine Einwilligung ausdrücklich erteilt hat (entweder über das Smartphone oder über das verbundene Gerät).
  • In der Lage sein, Ereignisse, die in einer gestreamten App auf einem verbundenen Gerät auf dem lokalen Gerät auftreten, wiederzugeben (injizieren). Beispiel: Wiedergeben eines Touch-Ereignisses auf dem Tablet mit denselben Koordinaten wie auf dem Smartphone oder Wiederholung eines Eingabeereignisses, das auf dem Brillengerät aufgetreten ist, mit derselben Eingabesemantik wie auf dem Smartphone.
  • Die App kann den Mikrofonstream des lokalen Geräts durch den Mikrofonstream eines verbundenen Geräts ersetzen, während eine gestreamte App das Mikrofon verwendet.
  • Die App erfasst Audio vom Gerät und streamt es auf das verbundene Gerät.
  • Sie müssen die Integrität des Betriebssystem-Builds des verbundenen Geräts prüfen, z. B. mithilfe der Geräteattestierung wie in VerifiedBootState.
  • Auf beiden Geräten solltest du nur Apps streamen, bei denen es nur ein übereinstimmendes Konto in der On-Device-Kontoregistrierung gibt (z. B. AccountManager unter Android). Ist dies nicht der Fall, muss das Streaming mit einem einmaligen Code autorisiert werden, der auf dem Quellgerät angezeigt und auf dem verbundenen Gerät eingegeben wird. Im Fall von Geräten, die mehrere Nutzer unterstützen (und nicht mehrere Konten) mit derselben garantierten Datenisolation wie bei Android-Nutzern mit mehreren Nutzern, zählt ein Nutzer als Gerät.
  • Wenn die Authentifizierung des Kontos auf dem verbundenen Gerät abläuft oder widerrufen wird, muss das Streaming sofort beendet und die Verbindung zu einem verbundenen Gerät getrennt werden.
  • Wenn das Quellgerät den Lockscreen Knowledge Factor (LSKF) verwendet, darf die App bei gesperrtem Display keine Apps auf ein verbundenes Gerät streamen, es sei denn, dieses Gerät hat einen Sperrbildschirm und ist entsperrt.
  • Wenn das Gerät von einem Administrator verwaltet wird, muss die App die vom Administrator festgelegten Richtlinien zum Aktivieren oder Deaktivieren des Streamings auf Geräte in der Nähe einhalten, z. B. über die DevicePolicyManager-Einstellungen in Android.
  • Das Remote-Display und alle Quellen von Remote-Eingabeereignissen müssen aus Nutzersicht zum selben logischen Gerät gehören (z. B. ein Remote-Display und eine angeschlossene Tastatur), sodass Ereignisse entsprechend weitergeleitet werden.
  • Der Nutzer muss das Streaming vom lokalen Gerät beenden können, beispielsweise über eine Schaltfläche in einer dauerhaften Benachrichtigung. Dieses Verhalten wird durch den Sperrbildschirm gesteuert, wenn für das Smartphone eine Displaysperre eingerichtet ist.
  • Wenn das Streaming auf einem anderen Gerät stattfindet, muss auf dem Quellgerät eine Angebote angezeigt werden, z. B. ein Symbol in der Statusleiste oder eine dauerhafte Benachrichtigung.