Radio mit Media implementieren

Die Radio-Benutzeroberfläche wird als eigenständige App implementiert. Eine Anleitung zum Einbinden einer Radio-Benutzeroberfläche in die Radiohardware finden Sie unter Radio implementieren.

Im folgenden Abschnitt wird beschrieben, wie du die Radio-UI in die Medienoberfläche einbindest, damit Nutzer nahtlos mit Medienquellen und Radiosendern interagieren können, als wäre es eine einzige App.

Nutzerfluss beim Wechsel der Medienquelle

Das folgende Diagramm zeigt, wie in der Referenzimplementierung von Radio und Medien der Nutzerfluss für den App-Wechsel implementiert wird.

Nutzerfluss beim Wechsel der Medienquelle

Abbildung 1: Nutzerfluss beim Wechsel der Medienquelle

Für einen nahtlosen Übergang zwischen Radio und anderen Apps in „Media“ werden in der car-media-common-Bibliothek Android-Intents definiert, mit denen eine Auswahl der Medienquelle gestartet werden kann. In AOSP ist diese Auswahl im App Launcher implementiert. Sie bietet dieselbe Benutzeroberfläche zum Starten von Apps, ist aber so gefiltert, dass nur Medienquellen angezeigt werden.

OEMs können die aktuelle App Launcher-Implementierung unverändert übernehmen oder eine benutzerdefinierte Medienquellenauswahl implementieren.

Die Auswahl kann in zwei Modi ausgeführt werden:

  • Normaler Ablauf Nachdem die Auswahl getroffen wurde, wird die ausgewählte Quelle in „Medien“ angezeigt, damit der Nutzer die Inhalte durchsuchen kann.
  • Als Schalter Mit einem Auswahlschalter können die Quellen gewechselt werden, die Medien werden dem Nutzer jedoch nicht angezeigt. Das gilt auch für das Auswahlsymbol auf der Startseite. Nachdem eine Quelle ausgewählt wurde, wird dem Nutzer der zuletzt besuchte Bildschirm angezeigt (in diesem Fall die Startseite).

Der Intent, der zum Wechseln zwischen Medienquellen verwendet wird, kann über die Methode MediaSource#getSourceSelectorIntent() abgerufen werden. Diese Methode akzeptiert einen booleschen Wert popup, der einen Intent zurückgibt, um jeden der oben beschriebenen Abläufe zu starten.

Die tatsächlichen Intents werden unter packages/apps/Car/libs/car-media-common/res/values/config.xml definiert. Verwenden Sie Overlays zur Buildzeit, um diese Konfiguration anzupassen.

Radio-App ersetzen

Da die Radio App Media Browse und Media Session implementiert, wird sie im App Launcher angezeigt. Damit Medien nicht gestartet werden, wenn ein Nutzer auf das Symbol klickt, sind zwei Elemente erforderlich. Radio muss:

  • Sie haben eine Launcher-Aktivität.
  • Sie müssen als benutzerdefinierte Quelle deklariert werden. Fügen Sie dazu den Komponentennamen dem Schlüssel custom_media_packages in car-media-common/res/values/config.xml hinzu.

UX-Fahrbeschränkungen

Medien müssen alle Einschränkungen für Ablenkungen beim Fahren einhalten. Dazu muss Media den CarUXRestrictionManager überwachen und alle seine Richtlinien implementieren.

  • Medien müssen eine Verbindung zur Car-Bibliothek herstellen und eine Instanz von CarUXRestrictionManager abrufen.
  • Medien müssen Updates in der Liste der CarUxRestrictions abonnieren und wie dokumentiert implementieren.
  • Für Medien sind insbesondere folgende Punkte wichtig: