Deeplinks in Medien-Apps einbinden

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

Unterstützte Versionen

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

  • CarMediaApp.apk
  • TestMediaApp.apk

Funktionsweise

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

Die Implementierung zur Unterstützung neuer Intents und Extras:

  • Bietet ein aktualisiertes Format der Intents, die von Media-Drittentwicklern verarbeitet werden können, damit sie erforderliche Informationen über den Intent an Media senden können.

  • Verarbeitet die Intents von Drittanbieter-Apps, die ein bestimmtes Media-Element oder eine Suchanfrage enthalten, und öffnet dann eine Seite mit den angeforderten Informationen in Media.

Drittanbieter-Entwickler 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 Media sendet.

Anforderungen an Drittanbieter-Apps

Die TmaTrampolineActivity in der TestMediaApp App ist ein Beispiel.

Schritt 1

Entwickler müssen eine Aktivität ähnlich wie TmaTrampolineActivity in TestMediaApp haben. Für Deeplinks benötigt diese Aktivität einen Intent-Filter im Manifest. Dieser Intent-Filter sollte alle URLs enthalten, die verarbeitet werden sollen, 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 Smartphone-Version der App 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 Media-App die Informationen über den Link ab und erstellt einen Intent für die Media.

Die Media unterstützt zwei Funktionen. Die erste Funktion dient zum Öffnen eines Media-Elements mit einem bestimmten Media-Element und die zweite zum Anzeigen der Ergebnisse einer Suchanfrage. Die Media-Item-ID oder der Suchanfragestring muss im Intent-Extra enthalten sein.

Informationen zur Intention

Damit Entwickler diese Funktion nutzen können, müssen sie die aktuelle Version der Media-Bibliothek zur Unterstützung der Intent-Aktion ACTION_MEDIA_TEMPLATE_V2 installieren. Die Intent-Aktion und die folgenden Intent-Extras sind in der Klasse MediaIntentExtras.java enthalten. Diese Extras können dem Intent 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, auf dem der Nutzer die Medien starten möchte. Wenn keine Angabe erfolgt, wird die aktive Media-Quelle geöffnet.
EXTRA_KEY_MEDIA_ID Media-ID Schlüssel, der als String-Zusatzfeld mit ACTION_MEDIA_TEMPLATE_V2 verwendet wird, um das Media-Element anzugeben, das in der Ansicht Durchsuchen angezeigt werden soll. Muss mit den in der MediaBrowserServiceCompat API verwendeten IDs übereinstimmen.
EXTRA_KEY_SEARCH_QUERY Suchanfrage Schlüssel, der als String-Zusatzfeld mit ACTION_MEDIA_TEMPLATE_V2 verwendet wird, um die Suchanfrage anzugeben, die entweder an den aktuellen MediaBrowserService oder an den mit EXTRA_KEY_MEDIA_COMPONENT angegebenen gesendet werden soll.
EXTRA_KEY_SEARCH_ACTION

Ganzzahl:

  • 0: EXTRA_VALUE_NO_SEARCH_ACTION
  • 1: EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH
Schlüssel, der als „int“-Zusatzfeld mit ACTION_MEDIA_TEMPLATE_V2 verwendet wird, um die Aktion für die Media anzugeben, die nach dem Laden der Suchanfrage ausgeführt werden soll.

Der Wert ist entweder 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. sowohl EXTRA_KEY_MEDIA_ID als auch EXTRA_KEY_SEARCH_QUERY, wird in der aktuellen Implementierung zuerst die Media-ID verarbeitet. Die Media führt die Suchanfrage nur aus, wenn die Media-ID leer ist.

Test

Sobald die Integration der Media-App eines Drittanbieters abgeschlossen ist, können Sie mit dem Befehl adb einen Deeplink senden. 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"