Deeplinks in Medien-Apps einbinden

In diesem Dokument wird beschrieben, wie Drittanbieter-App-Entwickler Deeplinks zu AAOS-Medien-Apps hinzufügen können. Mit Medien-Deeplinks können Sie AAOS-Medien-Apps auf die gleiche Weise wie auf einem Mobilgerät über Deeplinks öffnen.

Unterstützte Versionen

Die neueste unterstützte Version finden Sie in den aktuellen Build-Artefakten.

  • CarMediaApp.apk
  • TestMediaApp.apk

Funktionsweise

Wenn ein Deeplink auf AAOS geöffnet wird, wird die Medien-App geöffnet, die das jeweilige Schema verarbeitet. Die Medien-App decodiert dann die URL, erstellt einen Media-Intent mit den Informationen in diesem Link und öffnet dann mit diesem Intent den Medienbildschirm.

Implementierung zur Unterstützung neuer Intents und neuer Extras:

  • Bietet Drittanbietern ein aktualisiertes Format der Intents, die von den Medien verarbeitet werden können, damit sie die erforderlichen Informationen über den Intent an die Medien senden können.

  • Hier werden Intents von Drittanbieter-Apps verarbeitet, die ein bestimmtes Medienelement oder eine Suchanfrage enthalten, und dann wird eine Seite mit den angeforderten Informationen in „Medien“ geöffnet.

Drittanbieter sind dafür verantwortlich, ihre App so zu aktualisieren, dass sie über die Web-URI-Intents aufgerufen werden kann und die erforderlichen Informationen über einen Intent an die Medien sendet.

Anforderung für Drittanbieter-Apps

Die TmaTrampolineActivity in der TestMediaApp App dient als Beispiel.

Schritt 1

Entwickler müssen eine Aktivität ähnlich wie TmaTrampolineActivity in TestMediaApp haben. Für Deeplinks ist für diese Aktivität ein Intent-Filter im Manifest erforderlich. Dieser Intent-Filter sollte alle zu verarbeitenden URLs enthalten, wie unter Intent-Filter für eingehende Links hinzufügen beschrieben.

Wir empfehlen, dass der Intent-Filter die Schemas und Hosts enthält, die von der App der Smartphone-Version verwendet werden, damit die Deeplinks plattformübergreifend funktionieren.

<activity android:name=".automotive.TmaTrampolineActivity"
                  android:exported="true">
            <intent-filter android:label="TmaTrampolineActivity_label">
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="app"
                      android:host="com.android.car.media.testmediaapp"/>
            </intent-filter>
        </activity>

Schritt 2

In dieser Aktivität ruft die Medien-App die Informationen aus dem Link ab und erstellt einen Intent für die Medien.

Die Medien unterstützen zwei Funktionen. Die erste Funktion dient dazu, ein Medienelement mit einem bestimmten Medienelement zu öffnen. Die zweite Funktion dient dazu, die Ergebnisse einer Suchanfrage anzuzeigen. Die Medienelement-ID oder der Suchabfragestring muss im Intent-Extra enthalten sein.

Informationen zum Intent

Wenn Entwickler diese Funktion verwenden möchten, müssen sie die neueste Version der Medien installieren, um die Intent-Aktion ACTION_MEDIA_TEMPLATE_V2 zu unterstützen. Die Intent-Aktion und die folgenden Intent-Extras sind in der Klasse MediaIntentExtras.java enthalten. Diese Extras können der Absicht hinzugefügt werden.

Zusätzlicher Name Wert Beschreibung
EXTRA_KEY_MEDIA_COMPONENT String für „componentName“ Schlüssel, der als String-Zusatzfeld mit ACTION_MEDIA_TEMPLATE_V2 verwendet wird, um den MediaBrowserService anzugeben, über den der Nutzer die Medien starten möchte. Wenn keine Angabe gemacht wird, wird die aktive Medienquelle geöffnet.
EXTRA_KEY_MEDIA_ID Media-ID Schlüssel, der als String-Zusatzfeld mit ACTION_MEDIA_TEMPLATE_V2 verwendet wird, um das Medienelement anzugeben, das in der Ansicht Suchen angezeigt werden soll. Muss mit den IDs übereinstimmen, die in der MediaBrowserServiceCompat API verwendet werden.
EXTRA_KEY_SEARCH_QUERY Suchanfrage Schlüssel, der als String-Zusatzfeld mit ACTION_MEDIA_TEMPLATE_V2 verwendet wird, um die Suchanfrage an den aktuellen MediaBrowserService oder den mit EXTRA_KEY_MEDIA_COMPONENT angegebenen zu senden
EXTRA_KEY_SEARCH_ACTION

Ganzzahl:

  • 0: EXTRA_VALUE_NO_SEARCH_ACTION
  • 1: EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH
Schlüssel, der als zusätzliches Ganzzahlfeld mit ACTION_MEDIA_TEMPLATE_V2 verwendet wird, um die Aktion anzugeben, die die Medien nach dem Laden der Suchanfrage ausführen sollen.

Der Wert ist einer der folgenden Werte: EXTRA_VALUE_NO_SEARCH_ACTION oder EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH. Dieses Extra sollte nur mit EXTRA_KEY_SEARCH_QUERY verwendet werden.

Wenn dieses Extra nicht angegeben ist, werden nach dem Laden der Suchergebnisse keine weiteren Aktionen ausgeführt.

Besondere Fälle

Wenn dem Intent mehrere Extras hinzugefügt werden, z. B. EXTRA_KEY_MEDIA_ID und EXTRA_KEY_SEARCH_QUERY, wird in der aktuellen Implementierung zuerst die Medien-ID verarbeitet. Nur wenn die Medien-ID leer ist, führt das Medium die Suchanfrage aus.

Test

Sobald die Integration der Drittanbieter-Medien-App abgeschlossen ist, senden Sie mit einem adb-Befehl einen Deeplink. Die Medien werden mit den gewünschten Informationen geöffnet. Beispiel für TestMediaApp:

adb shell am start -W -a android.intent.action.VIEW -d "https://www.testmediaapp.com/path?search=normal\&searchAction=1"