Implementando Radio con Medios

La interfaz de usuario de Radio se implementa como una aplicación independiente. Las instrucciones sobre cómo integrar una interfaz de usuario de radio al hardware de radio se pueden encontrar en Implementación de radio .

La siguiente sección describe cómo integrar Radio UI con Media para brindar a los usuarios una experiencia fluida que les permita interactuar con las fuentes de medios y la radio como si fueran una sola aplicación.

Flujo de usuario de cambio de fuente de medios

El siguiente diagrama ilustra cómo la implementación de referencia de Radio and Media implementa el flujo de usuario de cambio de aplicación.

Flujo de usuario de cambio de fuente de medios

Figura 1. Flujo de usuario de cambio de fuente de medios

Para proporcionar una transición fluida entre Radio y otras aplicaciones en Media, la biblioteca car-media-common define las intenciones de Android que se pueden usar para iniciar un selector de fuente de medios. En AOSP, este selector se implementa en el Iniciador de aplicaciones y presenta la misma interfaz de usuario para iniciar aplicaciones, pero filtrada para mostrar solo las fuentes de medios.

Los OEM pueden optar por tomar la implementación actual del Iniciador de aplicaciones tal como está o implementar un selector de fuente de medios personalizado.

El selector puede actuar de dos modos:

  • Flujo normal. Después de usar el selector, la fuente seleccionada se muestra en Medios para que el usuario pueda explorar su contenido.
  • Como interruptor. Se utiliza un selector para cambiar las fuentes, pero los medios no se muestran al usuario. Este es el caso del icono del selector en la página de inicio. Después de seleccionar una fuente, se muestra al usuario la pantalla anterior más reciente (en este caso, la página de inicio).

La intención utilizada para cambiar entre fuentes de medios se puede obtener del método MediaSource#getSourceSelectorIntent() , que acepta un booleano popup que devuelve una intención de iniciar cada uno de los flujos descritos anteriormente.

Las intenciones reales se definen en packages/apps/Car/libs/car-media-common/res/values/config.xml . Para personalizar esta configuración, use superposiciones en tiempo de compilación.

Sustitución de la aplicación Radio

Dado que la aplicación Radio implementa Media Browse y Media Session, Radio se muestra en el iniciador de aplicaciones. Para evitar que se inicie Media cuando un usuario hace clic en el icono, se requieren dos elementos. La radio debe :

  • Tener una actividad de lanzador .
  • Ser declarado como fuente personalizada . Para hacerlo, agregue el nombre del componente a la clave custom_media_packages en car-media-common/res/values/config.xml .

Restricciones de manejo de UX

Los medios deben observar todas las restricciones de distracción de conducción de UX. Para hacerlo, Media debe escuchar CarUXRestrictionManager e implementar todas sus políticas.

  • Los medios deben conectarse a la biblioteca Car y obtener una instancia de CarUXRestrictionManager .
  • Los medios deben suscribirse a las actualizaciones en la lista de CarUxRestrictions e implementarlas según lo documentado.
  • Particularmente importantes para los medios son: