Das folgende Diagramm zeigt die Komponenten, die mit Medien interagieren:
Abbildung 1: Systemkomponenten
Die Elemente in dieser Abbildung sind in der Tabelle beschrieben:
Komponente | Beschreibung |
---|---|
Startbildschirm | Stellt andere Oberflächen in der Auto-Benutzeroberfläche dar, auf denen die aktuell wiedergegebene Anzeige angezeigt und gesteuert wird. Medien. In AOSP ist dies der Hauptbildschirm, der beim Start des Systems angezeigt wird. Auf diesem Bildschirm können die Nutzer Details des wiedergegebenen Medienelements anzeigen und eine begrenzte Anzahl Standard- und benutzerdefinierten Aktionen (z. B. Wiedergabe und Pause) hinzugefügt werden. |
System-UI | Stellt Funktionen bereit, die globale Navigationsoptionen der Benutzeroberfläche umfassen, z. B. zum Navigieren zu Medien. |
Assistenten | Android bietet verschiedene Sprachassistenten-Apps zur Interaktion mit dem System. Diese Apps können mit Medienquellen im Hintergrund interagieren (z. B. die Wiedergabe eines per Sprachbefehl nicht hören, oder zu „Medien im Vordergrund“ gehen (z. B. Ein Sprachassistent wird angewiesen, die Benutzeroberfläche einer bestimmten Medienquelle anzuzeigen. |
App Launcher | Alle Android-Apps, einschließlich der Medienquellen, werden im App Launcher gestartet. Medien können eine eigene Medienquellenauswahl präsentieren, die den App Launcher ergänzt oder ersetzt. als Ausgangspunkt für Medien. |
Google Play Store | Wenn GAS verwendet wird, können Nutzer neue Apps in einem Android-Gerät Bei Medien werden Nutzer nach der Installation von Apps zu den Medien weitergeleitet, um die Anmeldung abzuschließen oder mit der App zu interagieren. |
Media Session Manager | Android-Systemdienst, der Mediensitzungen aus allen Medienquellen verfolgt und steuert. Es bietet Mechanismen zur Erkennung, wann eine Medienquelle zum Vordergrund der Medien wird Quelle. Medien und alle anderen Apps, die die aktuell wiedergegebene Medienquelle anzeigen (für (z. B. der Startbildschirm), nutzen Sie Media Session Manager, um diese Ereignisse zu erkennen und die UI zu aktualisieren. entsprechend anpassen. Medienquellen interagieren mit Media Session Manager über das Medien Session API. |
Radio | Spezielle App für die Interaktion mit der Funkhardware Radiosuchanfragen im Radio schnell erkannte Sender auswählen und zwischen den Frequenzbändern wechseln. UI-Komponenten, die sowohl von Radio als auch von Medien genutzt werden, ermöglichen es dem Nutzer, zwischen beiden zu wechseln. User Experiences. |
Fahrerablenkungsmotor | Der Android-Systemdienst, mit dem UX-Einschränkungen basierend auf dem Fahrstatus des Fahrzeugs festgelegt werden. Auto. Für die Anmeldung und die Einstellungen für Medienquellen, bei denen der Bildschirm direkt über Medienquellen enthält, sorgt dieser Dienst dafür, dass keine unsicheren Inhalte angezeigt werden, wenn das Auto im Fahrzustand ist. OEMs können die Definition dieser Bundesstaaten anpassen und festlegen, wie das System reagiert in solchen Situationen, z. B. durch Einblenden eines blockierenden Bildschirm-Overlays. |
Nutzerflüsse
Medien-App-Start
Der Prozess zum Starten von Medien wird unten angezeigt.
Abbildung 2: Medien-App-Start
Medien müssen mit den folgenden impliziten
CAR_INTENT_ACTION_MEDIA_TEMPLATE
Folgende Informationen können für diesen Intent als Extras genutzt werden:
-
android.car.intent.extra.MEDIA_COMPONENT
(optional) String-Extra der den vereinfachten Komponentennamen einerMediaBrowserService
in der Medien-App ein, mit der die Medien verbunden werden sollen. Wenn nicht angegeben, werden Medien angezeigt der aktuell ausgewählten Medien-App. Dieser Intent wird aus folgenden Quellen verwendet: Einstiegspunkte:-
System-UI. Wird verwendet, um zur Medienfunktion zurückzukehren oder um wenn Sie es zum ersten Mal verwenden. In diesem Fall würde der obige Intent ohne Extras, damit Medien die aktuell ausgewählte Medien-App anzeigen.
-
Startbildschirm, Assistant und Benachrichtigungscenter. Nutzer können navigiere zu „Medien“, um die aktuell ausgewählte Medien-App aufzurufen. In jedem Fall wird der implizite Intent ohne Extras ausgelöst.
-
App Launcher Wenn Nutzer eine Medien-App aus der App Launcher, der obige Intent umfasst die
CAR_EXTRA_MEDIA_COMPONENT
Extra, das die ausgewählte Medien-App enthält. Media bezeichnet dies als neue ausgewählte App und stellt eine Verbindung zu ihr her. Weitere Informationen finden Sie unten im Abschnitt „App“. Integration von Launcher zu Medien.
-
App Launcher-Integration in Medien
Medien-Apps dürfen keine Aktivitäten bereitstellen, die mit dem
Kategorie android.intent.category.LAUNCHER
. Daher kann der App Launcher (oder seine
muss eine spezielle Logik für die Integration der Medienquellen implementieren:
-
Der App Launcher muss das System nach Paketen scannen,
MediaBrowserService.SERVICE_INTERFACE
Bei diesen Paketen ruft der App Launcher das Dienstsymbol ähnlich dem ab, das zum Abrufen anderer Aktivitäten. -
Der App Launcher kombiniert diese Pakete dann mit denen, die
android.intent.category.LAUNCHER
Aktivitäten. Wenn eine App einMediaBrowserService
-Implementierung und eine Launcher-Aktivität hat, nimmt der Dienst Vorrang.Zum Zeitpunkt der Erstellung dieses Artikels kann keine Medienquellen-App eine Launcher-Aktivität bereitstellen.
- Ein Beispiel für diese Logik finden Sie im AOSP-Code unter
AppLauncherUtils#getAllLauncherApps()
Anmeldevorgang und Konfigurationsoptionen
Medien-Apps können eine für Fahrzeuge optimierte Aktivität in den Einstellungen enthalten. Eine solche Aktivität kann zur Implementierung von Nutzerflüssen, die von den Android Media APIs nicht berücksichtigt werden. Beispiele:
- Anmelden
- Abmelden
- Wechsel zwischen Konten
- Anzeigen, in denen der Nutzer gerade angemeldet ist (falls vorhanden)
- Dienstkonfiguration
Abbildung 3: Anmeldevorgang
Diese Einstellungsaktivität wird von der Medien-App mit dem folgenden Intent-Filter deklariert:
<activity android:name=".AppSettingsActivity" android:exported="true android:theme="@style/SettingsActivity" android:label="@string/app_settings_activity_title"> <intent-filter> <action android:name="android.intent.action.APPLICATION_PREFERENCES"/> </intent-filter> </activity>
Medien müssen die folgende Logik implementieren:
-
Prüfe, ob die aktuell ausgewählte Medien-App eine Aktivität mit den angegebenen Intent-Filter.
-
Wenn ja, erlauben Sie dem Nutzer, zur Aktivität zu navigieren.
-
Wenn UX-Einschränkungen für Autos gelten (z. B. wenn das Auto in Bewegung ist), sollte dieses Angebot deaktiviert werden, da die Aktivität in den Einstellungen keine für den Treiber optimierte UI ist.
Fehlerbehandlung und erforderliche Anmeldung
Medien interagieren über die Android Media Session API mit Medien-Apps. Im Rahmen dieser
API empfangen, empfängt Media ein
PlaybackState
, das den aktuellen Status der Medien-App kommuniziert.
Der Anmeldevorgang beginnt, wenn sich die Medien-App ändert
PlaybackState
bis
STATE_ERROR
einschließlich eines spezifischen Fehlercodes (siehe Details unten). Wenn diese
zeigt Medien die Fehlerbeschreibung und eine Option an, mit der man zu einer Anmeldeaktivität navigieren kann.
der Medien-App implementiert wird.
Dieser Ablauf kann auch von Apps verwendet werden, um andere Fehlersituationen zu signalisieren (z. B. ein Serververbindungsfehler).
Abbildung 4: Fehlerbehandlung
Im Rahmen der normalen PlaybackState
-Fehlerbehandlung muss Medien auf die folgende Eingabe prüfen.
-
PlaybackState
Fehlercode gleichPlaybackStateCompat#ERROR_CODE_AUTHENTICATION_EXPIRED
. Damit signalisieren Sie, dass die Medien-App zur Fortsetzung des Vorgangs eine Anmeldung erfordert. Andere Fehlercodes können was auf andere Arten von Fehlersituationen hinweist. -
Fehlermeldung „
PlaybackState
“ (wird von Medien-Apps über diePlaybackStateCompat.Builder#setErrorMessage
) enthält ein für Menschen lesbare Erklärungen (z. B. „Sie sind nicht angemeldet“). Diese Nachricht muss für die und die Ablenkung muss optimiert werden. -
Optional kann
PlaybackState
die folgenden, durch Medien festgelegten Extras enthalten Apps mit demPlaybackStateCompat.Builder#setExtras
mit den folgenden Schlüsseln.-
android.media.extras.ERROR_RESOLUTION_ACTION_LABEL
Legen Sie einen String fest, der enthält die visuell lesbare Nachricht, die auf der Schaltfläche angezeigt werden soll, die der Nutzer zum Starten der zur Anmeldung. -
android.media.extras.ERROR_RESOLUTION_ACTION_INTENT
Festgelegt mit einemPendingIntent
wird wird ausgelöst, wenn der Nutzer auf die oben erwähnte Schaltfläche klickt. DiesesPendingIntent
auf eine benutzerdefinierte Anmeldeaktivität, die von derselben Medien-App implementiert wurde.
-
-
PlaybackState
-Status ist gleichSTATE_ERROR
Dies signalisiert, dass kein weiterer Vorgang möglich ist, bis die Anmeldung abgeschlossen ist.