La IU de Radio se implementa como una app independiente. Para obtener instrucciones sobre cómo integrar una IU de Radio en el hardware de radio, consulta Implementación de radio.
En la siguiente sección, se describe cómo integrar la IU de Radio con Media para brindar a los usuarios una experiencia fluida que les permita interactuar con las fuentes de contenido multimedia y la radio como si fueran una sola app.
Flujo de usuarios para cambiar la fuente de contenido multimedia
En el siguiente diagrama, se ilustra cómo la implementación de referencia de Radio y Media implementa el flujo de usuarios de cambio de app.

Figura 1: Flujo de usuarios para cambiar la fuente de contenido multimedia
Para proporcionar una transición fluida entre Radio y otras apps en Media, la biblioteca car-media-common define intents de Android que se pueden usar para iniciar un selector de fuentes de contenido multimedia. En AOSP, este selector se implementa en el Selector de aplicaciones, que presenta la misma IU para iniciar apps, pero filtrada para mostrar solo fuentes de medios.
Los OEM pueden optar por tomar la implementación actual del Selector de apps tal como está o implementar un selector de fuentes de medios personalizado.
El selector puede funcionar de dos maneras:
- Flujo normal. Después de usar el selector, la fuente seleccionada se muestra en Media para que el usuario pueda explorar su contenido.
- Como un interruptor. Se usa un selector para cambiar de fuente, pero no se muestra el contenido multimedia al usuario. Esto se aplica al ícono del selector en la página principal. Después de seleccionar una fuente, se muestra al usuario la pantalla anterior más reciente (en este caso, la página principal).
La intención que se usa 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.
Los intents reales se definen en packages/apps/Car/libs/car-media-common/res/values/config.xml. Para personalizar esta configuración, usa superposiciones durante la compilación.
Reemplaza la app de Radio
Dado que la app de Radio implementa Media Browse y Media Session, Radio se muestra en el Selector de apps. Para evitar que se inicie Media cuando un usuario hace clic en el ícono, se requieren dos elementos. La radio debe cumplir con los siguientes requisitos:
- Tener una actividad de selector
- Se debe declarar como una fuente personalizada. Para ello, agrega el nombre del componente a la clave
custom_media_packagesencar-media-common/res/values/config.xml.
Restricciones de UX durante la conducción
Los medios deben cumplir con todas las restricciones de distracción del conductor de la UX. Para ello, Media debe escuchar a CarUXRestrictionManager y aplicar todas sus políticas.
- El contenido multimedia debe conectarse a la biblioteca de Car y obtener una instancia de CarUXRestrictionManager.
- Los medios deben suscribirse a las actualizaciones de la lista de CarUxRestrictions y aplicarlas según se indica en la documentación.
- Los siguientes son especialmente importantes para los medios:
UX_RESTRICTIONS_NO_SETUP. En este caso, se debe inhabilitar el flujo de acceso.UX_RESTRICTIONS_LIMIT_STRING_LENGTH. Los mensajes de error y otros textos proporcionados por las apps de medios deben limitarse a la longitud indicada.