Questo documento ha lo scopo di descrivere in che modo gli sviluppatori di app multimediali di terze parti (3P) possono aggiungere deep link alle app multimediali AAOS. I deep link multimediali ti consentono di aprire le app multimediali AAOS tramite deep link, proprio come su un dispositivo mobile.
Versioni supportate
Per visualizzare l'ultima versione supportata, consulta gli ultimi artefatti di build.
CarMediaApp.apkTestMediaApp.apk
Come funziona
Quando un deep link viene aperto su AAOS, si apre l'app multimediale che gestisce lo schema specifico. L'app multimediale decodifica l'URL, creando un intent multimediale con le informazioni contenute nel link e utilizzando questo intent per aprire la schermata multimediale.
L'implementazione per supportare nuovi intent e nuovi extra:
Fornisce un formato aggiornato degli intent che possono essere gestiti dai contenuti multimediali per gli sviluppatori di terze parti, in modo che possano inviare le informazioni necessarie tramite l'intent ai contenuti multimediali.
Gestisce gli intent delle app di terze parti che contengono un elemento multimediale specifico o una query di ricerca e poi apre una pagina con le informazioni richieste nei contenuti multimediali.
Gli sviluppatori di terze parti sono responsabili dell'aggiornamento della propria app in modo che possa essere richiamata dagli intent URI web e inviare le informazioni necessarie ai contenuti multimediali tramite un intent.
Requisiti per le app di terze parti
La TmaTrampolineActivity nell'app TestMediaApp viene fornita come esempio.
Passaggio 1
Gli sviluppatori devono avere un'attività simile a TmaTrampolineActivity in TestMediaApp. Per il deep linking, questa attività richiede un filtro per intent nel file manifest. Questo filtro per intent deve includere tutti gli URL da gestire
come descritto in Aggiungere filtri per intent per i link in entrata.
Ti consigliamo di includere nel filtro per intent gli schemi e gli host utilizzati dalla versione per smartphone dell'app per assicurarti che i deep link funzionino su tutte le piattaforme.
<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>
Passaggio 2
In questa attività, l'app multimediale recupera le informazioni dal link e crea un intent per i contenuti multimediali.
I contenuti multimediali supportano due funzioni. La prima funzione è aprire un elemento multimediale con un elemento multimediale specifico, mentre la seconda è mostrare i risultati di una query di ricerca. L'ID dell'elemento multimediale o la stringa della query di ricerca devono essere inclusi nell'extra dell'intent.
Informazioni sull'intent
Per utilizzare questa funzionalità, gli sviluppatori devono installare la versione più recente dei contenuti multimediali per supportare l'azione dell'intent, ACTION_MEDIA_TEMPLATE_V2. L'azione dell'intent e gli extra dell'intent seguenti sono inclusi nella classe MediaIntentExtras.java. Questi extra possono essere aggiunti all'intent.
| Nome extra | Valore | Descrizione |
|---|---|---|
| EXTRA_KEY_MEDIA_COMPONENT | Stringa per componentName | Chiave utilizzata come campo extra stringa con ACTION_MEDIA_TEMPLATE_V2 per specificare il MediaBrowserService su cui l'utente vuole avviare i contenuti multimediali. Se non specificato, viene aperta l'origine multimediale attiva. |
| EXTRA_KEY_MEDIA_ID | ID contenuti multimediali | Chiave utilizzata come campo extra stringa con ACTION_MEDIA_TEMPLATE_V2 per specificare l'elemento multimediale da visualizzare nella visualizzazione Sfoglia. Deve corrispondere agli ID utilizzati nell' API MediaBrowserServiceCompat. |
| EXTRA_KEY_SEARCH_QUERY | Query di ricerca | Chiave utilizzata come campo extra stringa con ACTION_MEDIA_TEMPLATE_V2 per specificare la query di ricerca da inviare al MediaBrowserService corrente o a quello specificato con EXTRA_KEY_MEDIA_COMPONENT. |
| EXTRA_KEY_SEARCH_ACTION | Numero intero:
|
Chiave utilizzata come campo extra int con ACTION_MEDIA_TEMPLATE_V2
per specificare l'azione da eseguire per i contenuti multimediali dopo il caricamento della query di ricerca.
Il valore è EXTRA_VALUE_NO_SEARCH_ACTION o EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH. Questo extra deve essere utilizzato solo con EXTRA_KEY_SEARCH_QUERY. Se questo extra non è specificato, non viene eseguita alcuna azione dopo il risultati di ricerca vengono caricati. |
Casi speciali
Se all'intent vengono aggiunti più extra contemporaneamente, ad esempio se in questo intent sono inclusi sia EXTRA_KEY_MEDIA_ID sia EXTRA_KEY_SEARCH_QUERY, l'implementazione attuale gestisce prima l'ID dei contenuti multimediali e solo quando l'ID dei contenuti multimediali è vuoto i contenuti multimediali eseguono la query di ricerca.
Test
Una volta completata l'integrazione dell'app multimediale di terze parti, utilizza un comando adb per inviare un deep link. I contenuti multimediali si aprono con le informazioni desiderate. Ad esempio, questo comando per TestMediaApp:
adb shell am start -W -a android.intent.action.VIEW -d "https://www.testmediaapp.com/path?search=normal\&searchAction=1"