Ce document vise à décrire comment les développeurs d'applications tierces peuvent ajouter des liens profonds aux applications multimédias AAOS. Les liens profonds multimédias vous permettent d'ouvrir des applications multimédias AAOS de la même manière que sur un appareil mobile.
Versions compatibles
Pour obtenir la dernière version compatible, consultez les derniers artefacts de compilation.
CarMediaApp.apk
TestMediaApp.apk
Fonctionnement
Lorsqu'un lien profond est ouvert sur AAOS, l'application multimédia qui gère le schéma en question s'ouvre. L'application multimédia décode ensuite l'URL, créant un intent Media avec les informations de ce lien, puis utilise cet intent pour ouvrir l'écran multimédia.
Implémentation pour prendre en charge de nouvelles intentions et de nouveaux extras :
Fournit un format mis à jour des intents pouvant être gérés par le média aux développeurs tiers afin qu'ils puissent envoyer les informations nécessaires via l'intent au média.
Gère les intents des applications tierces qui contiennent un élément multimédia spécifique ou une requête de recherche, puis ouvre une page contenant les informations demandées dans Media.
Les développeurs tiers sont responsables de la mise à jour de leur application afin qu'elle puisse être appelée par les intents d'URI Web et envoyer les informations nécessaires au lecteur multimédia via un intent.
Exigences concernant les applications tierces
Le TmaTrampolineActivity
dans l'application TestMediaApp
est fourni à titre d'exemple.
Étape 1
Les développeurs doivent avoir une activité semblable à TmaTrampolineActivity
dans TestMediaApp
. Pour créer un lien profond, cette activité a besoin d'un filtre d'intent dans le fichier manifeste. Ce filtre d'intent doit inclure toutes les URL à gérer, comme décrit dans Ajouter des filtres d'intent pour les liens entrants.
Nous vous suggérons d'inclure dans le filtre d'intent les schémas et les hôtes utilisés par l'application pour téléphone afin de vous assurer que les liens profonds fonctionnent sur toutes les plates-formes.
<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>
Étape 2
Dans cette activité, l'application multimédia récupère les informations du lien et crée un intent vers le média.
Le média est compatible avec deux fonctions. La première fonction consiste à ouvrir un élément multimédia spécifique, et la seconde à afficher les résultats d'une requête de recherche. L'ID de l'élément multimédia ou la chaîne de requête de recherche doivent être inclus dans l'extra de l'intention.
Informations sur l'intention
Pour utiliser cette fonctionnalité, les développeurs doivent installer la dernière version de Media to support the Intent action, ACTION_MEDIA_TEMPLATE_V2
. L'action Intent et les extras d'intent suivants sont inclus dans la classe MediaIntentExtras.java
. Ces extras peuvent être ajoutés à l'intention.
Nom de l'option | Valeur | Description |
---|---|---|
EXTRA_KEY_MEDIA_COMPONENT | Chaîne pour componentName | Clé utilisée comme champ supplémentaire de chaîne avec ACTION_MEDIA_TEMPLATE_V2 pour spécifier le MediaBrowserService sur lequel l'utilisateur souhaite démarrer le contenu multimédia. Lorsqu'elle n'est pas spécifiée, la source multimédia active est ouverte. |
EXTRA_KEY_MEDIA_ID | ID du média | Clé utilisée comme champ supplémentaire de chaîne avec ACTION_MEDIA_TEMPLATE_V2 pour spécifier l'élément multimédia à afficher dans la vue Parcourir. Doit correspondre aux ID utilisés dans l'API MediaBrowserServiceCompat. |
EXTRA_KEY_SEARCH_QUERY | Requête de recherche | Clé utilisée comme champ supplémentaire de chaîne avec ACTION_MEDIA_TEMPLATE_V2 pour spécifier la requête de recherche à envoyer au MediaBrowserService actuel ou à celui spécifié avec EXTRA_KEY_MEDIA_COMPONENT |
EXTRA_KEY_SEARCH_ACTION | Entier :
|
Clé utilisée comme champ supplémentaire int avec ACTION_MEDIA_TEMPLATE_V2 pour spécifier l'action à effectuer pour le contenu multimédia une fois la requête de recherche chargée.
La valeur est l'une des constantes EXTRA_VALUE_NO_SEARCH_ACTION ou EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH. Cette valeur supplémentaire ne doit être utilisée qu'avec EXTRA_KEY_SEARCH_QUERY. Si cette option n'est pas spécifiée, aucune autre action n'est effectuée une fois les résultats de recherche chargés. |
Cas particuliers
Si plusieurs extras sont ajoutés à l'intent ensemble, par exemple si EXTRA_KEY_MEDIA_ID
et EXTRA_KEY_SEARCH_QUERY
sont inclus dans cet intent, l'implémentation actuelle gère d'abord l'ID d'élément multimédia, et ce n'est que lorsque l'ID d'élément multimédia est vide que le lecteur multimédia exécute la requête de recherche.
Test
Une fois l'intégration de l'application multimédia tierce terminée, utilisez une commande adb
pour envoyer un lien profond. Le contenu multimédia s'ouvre avec les informations souhaitées. Par exemple, cette commande pour TestMediaApp
:
adb shell am start -W -a android.intent.action.VIEW -d "https://www.testmediaapp.com/path?search=normal\&searchAction=1"