El objetivo de este documento es describir cómo los desarrolladores de apps de terceros (3P) pueden agregar vínculos directos a las apps de medios de AAOS. Los vínculos directos de contenido multimedia te permiten abrir apps de Media de AAOS a través de vínculos directos de la misma manera que en un dispositivo móvil.
Versiones compatibles
Para obtener la versión compatible más reciente, consulta los artefactos de compilación más recientes.
CarMediaApp.apk
TestMediaApp.apk
Cómo funciona
Cuando se abre un vínculo directo en AAOS, se abre la app de música que controla el esquema en particular. Luego, la app de música decodifica la URL, crea un intent de Media con la información de ese vínculo y, luego, usa ese intent para abrir la pantalla de música.
Implementación para admitir intents y elementos adicionales nuevos:
Proporciona un formato actualizado de las intents que pueden controlar los desarrolladores de Media a terceros para que puedan enviar la información necesaria a través de la intent a Media.
Controla las intents de las apps de terceros que contienen un elemento multimedia específico o una búsqueda y, luego, abre una página con la información solicitada en Media.
Los desarrolladores externos son responsables de actualizar sus apps para que se puedan invocar con intents de URI web y enviar la información necesaria a Media a través de un intent.
Requisito para las apps de terceros
El TmaTrampolineActivity
en la app de TestMediaApp
se proporciona como ejemplo.
Paso 1
Los desarrolladores deben tener una actividad similar a TmaTrampolineActivity
en TestMediaApp
. Para usar vínculos directos, esta actividad necesita un filtro de intents en el manifiesto. Este filtro de intents debe incluir todas las URLs que se controlarán, como se describe en Cómo agregar filtros de intents para vínculos entrantes.
Sugerimos que el filtro de intents incluya los esquemas y los hosts que usa la app para la versión de teléfonos para garantizar que los vínculos directos funcionen en todas las plataformas.
<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>
Paso 2
En esta actividad, la app de Media recupera la información del vínculo y crea un intent para Media.
El dispositivo Media admite dos funciones. La primera función es abrir un elemento multimedia con un elemento multimedia específico, y la segunda es mostrar los resultados de una búsqueda. El ID del elemento multimedia o la cadena de búsqueda deben incluirse en el extra del intent.
Información del intent
Para usar esta función, los desarrolladores deben instalar la versión más reciente de Media para admitir la acción de Intent, ACTION_MEDIA_TEMPLATE_V2
. La acción de Intent y los siguientes extras de intent se incluyen en la clase MediaIntentExtras.java
. Estos objetos adicionales se pueden agregar al intent.
Nombre del adicional | Valor | Descripción |
---|---|---|
EXTRA_KEY_MEDIA_COMPONENT | Cadena para componentName | Es la clave que se usa como un campo adicional de cadena con ACTION_MEDIA_TEMPLATE_V2 para especificar el MediaBrowserService en el que el usuario quiere iniciar el contenido multimedia. Si no se especifica, se abre la fuente de medios activa. |
EXTRA_KEY_MEDIA_ID | ID de medios | Es la clave que se usa como un campo adicional de cadena con ACTION_MEDIA_TEMPLATE_V2 para especificar el elemento multimedia que se debe mostrar en la vista Browse. Debe coincidir con los IDs que se usan en la API de MediaBrowserServiceCompat. |
EXTRA_KEY_SEARCH_QUERY | Búsqueda | Es la clave que se usa como un campo adicional de cadena con ACTION_MEDIA_TEMPLATE_V2 para especificar la búsqueda que se enviará al MediaBrowserService actual o al especificado con EXTRA_KEY_MEDIA_COMPONENT. |
EXTRA_KEY_SEARCH_ACTION | Número entero:
|
Es la clave que se usa como un campo adicional int con ACTION_MEDIA_TEMPLATE_V2 para especificar la acción que debe realizar el elemento multimedia después de que se carga la búsqueda.
El valor es uno de EXTRA_VALUE_NO_SEARCH_ACTION o EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH. Este elemento adicional solo se debe usar con EXTRA_KEY_SEARCH_QUERY. Si no se especifica este parámetro adicional, no se realizará ninguna otra acción después de que se carguen los resultados de la búsqueda. |
Casos especiales
Si se agregan varios parámetros adicionales al intent, como EXTRA_KEY_MEDIA_ID
y EXTRA_KEY_SEARCH_QUERY
, la implementación actual controla primero el ID de contenido multimedia y, solo cuando el ID de contenido multimedia está vacío, Media ejecuta la búsqueda.
Prueba
Una vez que se complete la integración de la app de medios de terceros, usa un comando adb
para enviar un vínculo directo. Se abrirá el contenido multimedia con la información deseada. Por ejemplo, este comando para TestMediaApp
:
adb shell am start -W -a android.intent.action.VIEW -d "https://www.testmediaapp.com/path?search=normal\&searchAction=1"