Implementar radio con Media

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 Implementar radio .

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

Flujo de usuarios de cambio de fuente de medios

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

Flujo de usuarios 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 Medios, la biblioteca car-media-common define intents 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 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 de fuente, pero los medios no se muestran al usuario. Esto se aplica al ícono 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 valor booleano popup que devuelve una intención para 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, utilice superposiciones en tiempo de compilación.

Reemplazar la aplicación Radio

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

  • Tener una actividad de lanzamiento .
  • 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 conducción UX

Los medios deben observar todas las restricciones de distracción al conducir de UX. Para ello, los medios deben escuchar al 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 de la lista de CarUxRestrictions e implementarlas según lo documentado.
  • Particularmente importantes para los medios son: