Cómo integrar vínculos directos en apps de música

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 música para AAOS. Los vínculos directos de música te permiten abrir apps de música para 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 Build Artifacts.

  • 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 música con la información de ese vínculo y, luego, usa ese intent para abrir la pantalla de música.

La implementación para admitir intents y objetos adicionales nuevos es la siguiente:

  • Proporciona un formato actualizado de los intents que pueden controlar los desarrolladores de música a terceros para que puedan enviar la información necesaria a través del intent a la música.

  • Controla los intents de las apps de terceros que contienen un elemento de música específico o una búsqueda y, luego, abre una página con la información solicitada en la música.

Los desarrolladores de terceros son responsables de actualizar su app para que los intents de URI web puedan invocarla y enviar la información necesaria a la música a través de un intent.

Requisitos para las apps de terceros

Se proporciona TmaTrampolineActivity en la app TestMediaApp 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 de la versión para teléfonos para asegurarse de 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 música recupera la información del vínculo y crea un intent para la música.

La música admite dos funciones. La primera función es abrir un elemento de música con un elemento de música específico, y la segunda es mostrar los resultados de una búsqueda. El ID del elemento de música o la cadena de búsqueda deben incluirse en el objeto adicional del intent.

Información del intent

Para usar esta función, los desarrolladores deben instalar la versión más reciente de la música para admitir la acción de intent, ACTION_MEDIA_TEMPLATE_V2. La acción de intent y los siguientes objetos adicionales del intent se incluyen en la clase MediaIntentExtras.java. Estos objetos adicionales se pueden agregar al intent.

Nombre del objeto adicional Valor Descripción
EXTRA_KEY_MEDIA_COMPONENT Cadena para componentName 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 la música. Si no se especifica, se abre la fuente de música activa.
EXTRA_KEY_MEDIA_ID ID de música Clave que se usa como un campo adicional de cadena con ACTION_MEDIA_TEMPLATE_V2 para especificar el elemento de música que se debe mostrar en la vista Explorar. Debe coincidir con los IDs que se usan en la API de MediaBrowserServiceCompat.
EXTRA_KEY_SEARCH_QUERY Búsqueda 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:

  • 0: EXTRA_VALUE_NO_SEARCH_ACTION
  • 1: EXTRA_VALUE_PLAY_FIRST_ITEM_FROM_SEARCH
Clave que se usa como un campo adicional de int con ACTION_MEDIA_TEMPLATE_V2 para especificar la acción que debe realizar la música 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 objeto adicional solo debe usarse con EXTRA_KEY_SEARCH_QUERY.

Si no se especifica este objeto adicional, no se realiza ninguna otra acción después de que se cargan los resultados de la búsqueda.

Casos especiales

Si se agregan varios objetos adicionales al intent juntos, como EXTRA_KEY_MEDIA_ID y EXTRA_KEY_SEARCH_QUERY, la implementación actual controla el ID de música primero y, solo cuando el ID de música está vacío, la música ejecuta la búsqueda.

Prueba

Una vez que se complete la integración de la app de música de terceros, usa un comando adb para enviar un vínculo directo. La música se abre 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"