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());
}