Implementa protecciones contra distracción

Debido a que el teléfono del usuario está conectado a las bocinas del automóvil cuando se usa Android Auto, debes tomar precauciones adicionales para evitar la distracción del conductor.

Cuando desarrolles apps de contenido multimedia para Android Auto, implementa medidas de seguridad específicas para minimizar la distracción del conductor. Estas protecciones incluyen lo siguiente:

  • Impedir que tu app reproduzca audio automáticamente en las bocinas del automóvil, incluso para las alarmas programadas por el usuario

  • Administrar cómo Android Auto muestra las notificaciones cuando tu app cambia entre música y anuncios

Para lograrlo, usa la API de CarConnection para detectar si un teléfono se proyecta en la pantalla de un automóvil. Si es así, inhabilita las alarmas o proporciona una IU en el teléfono para administrarlas. En el caso de los anuncios, establece la clave de metadatos METADATA_KEY_IS_ADVERTISEMENT para suprimir las notificaciones que distraen.

Elimina las alarmas en el vehículo

Las apps multimedia de Android Auto no deben iniciar la reproducción de audio en las bocinas del vehículo, a menos que la inicie el usuario (por ejemplo, presionando un botón de Reproducir). Incluso una alarma programada por el usuario desde la app de música no debería iniciar la reproducción de música en las bocinas del vehículo.

Para cumplir con este requisito, tu app puede usar CarConnection como indicador antes de reproducir audio. Tu app puede verificar si el teléfono proyecta a una pantalla del automóvil. Observa el LiveData para el tipo de conexión. Confirma que el valor sea igual a CONNECTION_TYPE_PROJECTION.

Si el teléfono del usuario está proyectando, las apps de música que admiten alarmas deben realizar una de las siguientes acciones:

  • Desactivar la alarma

  • Volver a reproducir la alarma STREAM_ALARM y proporcionar una IU en la pantalla del teléfono para desactivarla

Controla los anuncios de medios

De forma predeterminada, Android Auto muestra una notificación cuando los metadatos de los elementos multimedia cambian durante una sesión de reproducción de audio. Cuando una app de música cambia de reproducir música a ejecutar un anuncio, mostrar una notificación distrae al usuario. Para evitar que Android Auto muestre una notificación, establece la clave de metadatos multimedia METADATA_KEY_IS_ADVERTISEMENT en METADATA_VALUE_ATTRIBUTE_PRESENT:

Kotlin

import androidx.media.utils.MediaConstants

override fun onPlayFromMediaId(mediaId: String, extras: Bundle?) {
    MediaMetadataCompat.Builder().apply {
        if (isAd(mediaId)) {
            putLong(
                MediaConstants.METADATA_KEY_IS_ADVERTISEMENT,
                MediaConstants.METADATA_VALUE_ATTRIBUTE_PRESENT)
        }
        // ...add any other properties you normally would.
        mediaSession.setMetadata(build())
    }
}

Java

import androidx.media.utils.MediaConstants;

@Override
public void onPlayFromMediaId(String mediaId, Bundle extras) {
    MediaMetadataCompat.Builder builder = new MediaMetadataCompat.Builder();
    if (isAd(mediaId)) {
        builder.putLong(
            MediaConstants.METADATA_KEY_IS_ADVERTISEMENT,
            MediaConstants.METADATA_VALUE_ATTRIBUTE_PRESENT);
    }
    // ...add any other properties you normally would.
    mediaSession.setMetadata(builder.build());
}