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:
|
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"