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