Questo documento ha lo scopo di descrivere come gli sviluppatori di app di terze parti (3P) possono aggiungere link diretti alle app multimediali AAOS. I link diretti ai contenuti multimediali ti consentono di aprire le app multimediali AAOS tramite link diretti nello stesso modo in cui lo faresti su un dispositivo mobile.
Versioni supportate
Per ottenere l'ultima versione supportata, consulta gli ultimi artefatti di build.
CarMediaApp.apk
TestMediaApp.apk
Come funziona
Quando un link diretto 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 dagli sviluppatori di Media in modo che possano inviare le informazioni necessarie tramite l'intent a Media.
Gestisce gli intent delle app di terze parti che contengono un elemento multimediale specifico o una query di ricerca, quindi apre una pagina con le informazioni richieste in Media.
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 a Media tramite un intent.
Requisito per le app di terze parti
TmaTrampolineActivity
nell'app TestMediaApp
è fornito come esempio.
Passaggio 1
Gli sviluppatori devono svolgere un'attività simile a TmaTrampolineActivity
in
TestMediaApp
. Per il link diretto, questa attività richiede un filtro per intent nel
manifest. Questo filtro per intent deve includere tutti gli URL da gestire
come descritto in Aggiungere filtri per intent per i link in entrata.
Suggeriamo che il filtro per intent includa gli schemi e gli host utilizzati dall'app per smartphone per garantire il funzionamento dei deep link 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 Media recupera le informazioni dal link e crea un intent per i contenuti multimediali.
Media supporta 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 elemento multimediale o la stringa della query di ricerca devono essere inclusi nell'extra dell'intent.
Informazioni sull'intenzione
Per utilizzare questa funzionalità, gli sviluppatori devono installare la versione più recente di
Media per supportare l'intent ACTION_MEDIA_TEMPLATE_V2
. L'azione Intent
e gli extra intent seguenti sono inclusi nella
classe MediaIntentExtras.java
. Questi extra possono essere aggiunti all'intent.
Nome dell'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 viene specificato, viene aperta la sorgente multimediale attiva. |
EXTRA_KEY_MEDIA_ID | ID elemento multimediale | Chiave utilizzata come campo extra stringa con ACTION_MEDIA_TEMPLATE_V2 specifica l'elemento multimediale che deve essere visualizzato nella visualizzazione Sfoglia. Devono 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 che deve essere eseguita dai 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 viene specificato, non vengono eseguite ulteriori azioni dopo il caricamento dei risultati di ricerca. |
Casi particolari
Se vengono aggiunti più extra all'intent insieme, 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 media e solo quando l'ID media è vuoto, Media esegue 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. Si apre la scheda Media 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"