Cómo probar apps de Android para vehículos

Cuando pruebas tu app para vehículos, ayudas a garantizar que los usuarios no encontrarán resultados inesperados ni tendrán una mala experiencia. La manera en la que pruebes la app dependerá de si esta se ejecutará en Android Auto o en el SO Android Automotive.

Consulta una de las siguientes secciones para comenzar:

Prueba tu app para Android Auto

La consola central de escritorio (DHU, por su sigla en inglés) habilita tu máquina de desarrollo a emular una consola central de Android Auto, de modo que puedas ejecutar y probar tus apps de Android Auto. La DHU se ejecuta en sistemas con Windows, macOS y Linux.

En esta sección, se explica cómo instalar y ejecutar la DHU en la máquina de desarrollo para probar tus apps. Después de instalar la DHU, podrás probar tus apps de Android Auto si conectas el dispositivo móvil a ella mediante uno de los mecanismos de conexión compatibles que se describen en Cómo ejecutar la DHU.

Para informar errores o solicitar funciones relacionadas con la DHU, usa esta herramienta de seguimiento de errores.

Instala la DHU

Para instalar la DHU en tu máquina de desarrollo, sigue estos pasos:

  1. Habilita el modo de desarrollador en un dispositivo móvil que ejecute Android 6.0 (nivel de API 23) o versiones posteriores, según se describe en Cómo configurar las opciones para desarrolladores en el dispositivo.
  2. Compila e instala tu app en el dispositivo.
  3. Instala Android Auto en el dispositivo. Si ya está instalada, asegúrate de estar usando la versión más reciente.
  4. Abre SDK Manager, navega a la pestaña de herramientas del SDK y, luego, descarga el paquete del emulador de la consola central de escritorio de Android Auto.

    SDK Manager muestra DHU 2.0.

    La DHU se instalará en el directorio SDK_LOCATION/extras/google/auto/.

  5. En los sistemas Linux o macOS, ejecuta el siguiente comando en ese directorio para asegurarte de que se pueda ejecutar el objeto binario DHU:

    chmod +x ./desktop-head-unit
    
Pasos adicionales para Linux únicamente

Si ejecutas la versión 2.0 en un sistema Linux, deberás instalar algunas bibliotecas adicionales. El objeto binario de la DHU depende de la versión 2.32, o una posterior, de GLIBC. Puedes comprobar la versión de GLIBC de tu sistema mediante este comando:

ldd --version

Si la versión es anterior a la 2.32, deberás actualizar GLIBC a la versión 2.32 o una posterior, o bien actualizar el SO a una versión compatible con GLIBC 2.32 o una versión posterior.

También deberás instalar las bibliotecas libc++1 y libc++abi1. El procedimiento de instalación varía según la distribución de Linux. Por ejemplo, en las distribuciones de Linux derivadas de Debian, puedes instalar las bibliotecas con este comando:

sudo apt-get install libc++1 libc++abi1

Instala las versiones previas al lanzamiento de la DHU

Para acceder a las versiones previas al lanzamiento de la DHU, puedes usar una versión preliminar de Android Studio o cambiar el canal de actualización de tu instalación actual de Android Studio en el canal beta.

Cómo ejecutar la DHU

Después de instalar la DHU, podrás probar tus apps de Android Auto conectando el dispositivo móvil y la estación de trabajo mediante USB. Para ejecutar la DHU, conecta tu dispositivo móvil a una máquina de desarrollo mediante el modo de accesorio (recomendado para la DHU 2.0) o la tunelización de ADB.

Conexión mediante el modo de accesorio (solo DHU 2.0)

Android Auto admite la conexión a la DHU con el protocolo Android Open Accessory (AOA) mediante el siguiente comando:

./desktop-head-unit --usb

De forma predeterminada, la DHU escanea la lista de dispositivos USB disponibles y trata de conectarse al primero compatible. Para orientarte a un dispositivo específico, incluye el ID de dispositivo como parte del comando --usb de la siguiente manera:

./desktop-head-unit --usb=[DEVICE_ID]

Cómo conectarse mediante tunelización de ADB

Este método requiere la configuración de una conexión con el servidor de la consola central de Android Auto mediante Android Debug Bridge (ADB). Sigue estos pasos para configurar la tunelización y ejecutar la DHU:

  1. Realiza una de las siguientes acciones para abrir la configuración de Android Auto, según la versión de Android que se ejecute en el dispositivo:

    • Android 10 o versiones posteriores: En el dispositivo, presiona Configuración > Apps y notificaciones > Ver todas las apps > Android Auto > Avanzada > Opciones de configuración adicionales de la app.
    • Android 9 o versiones anteriores: En la app de Android Auto, presiona Menú y, luego, Configuración.
  2. Desplázate hasta la sección Acerca de, cerca de la parte inferior, y presiona Versión para mostrar toda la información de la versión y los permisos.

  3. Presiona la sección Información de la versión y los permisos 10 veces.

    Se mostrará el cuadro de diálogo Permitir configuración de desarrollo.

  4. Presiona Aceptar.

    Se habilitará el modo de desarrollador y podrás acceder a las opciones para desarrolladores en el menú ampliado. Solo deberás habilitar el modo de desarrollador la primera vez que ejecutes la app de Android Auto.

  5. Si aún no se está ejecutando el servidor de la consola central, presiona los tres puntos de la esquina superior derecha de la pantalla para abrir el menú ampliado y selecciona Iniciar servidor unidad princ. (consulta la Figura 1).

    En el dispositivo, se mostrará un servicio en primer plano en el área de notificaciones que indica que el servidor está en ejecución (consulta la Figura 2).

    Menú contextual con opciones para desarrolladores

    Figura 1: Menú contextual con opciones para desarrolladores

    Notificación que indica que el servidor de la consola central se está ejecutando

    Figura 2: Notificación que indica que el servidor de la consola central está en ejecución

  6. En la app de Android Auto, presiona Vehículos conectados anteriormente, cerca de la parte superior de Configuración, y asegúrate de que la opción Agregar automóviles nuevos a Android Auto esté habilitada.

  7. Conecta el dispositivo móvil a la máquina de desarrollo por USB.

  8. Asegúrate de que la pantalla del dispositivo móvil esté desbloqueada; de lo contrario, no se podrá iniciar la DHU.

  9. En la máquina de desarrollo, ejecuta el siguiente comando de adb para reenviar conexiones de sockets del puerto 5277 de la máquina de desarrollo al mismo número de puerto en el dispositivo Android. Esta configuración permite que la DHU se conecte al servidor de la consola central que se ejecuta en el teléfono a través de un socket TCP.

    adb forward tcp:5277 tcp:5277
    
  10. Para iniciar la DHU, ejecuta el comando desktop-head-unit.exe (en Windows) o ./desktop-head-unit (en macOS o Linux) desde el directorio SDK_LOCATION/extras/google/auto/.

    cd SDK_LOCATION/extras/google/auto
    desktop-head-unit.exe # Windows
    ./desktop-head-unit # macOS or Linux
    

    La DHU se inicia en la máquina de desarrollo

  11. Si es la primera vez que conectas el dispositivo móvil a la DHU, consulta la pantalla del dispositivo móvil para aceptar las Condiciones del Servicio y ajustar la configuración de los permisos según sea necesario.

Después de que se inicie la DHU, podrás usar los comandos de la DHU para ejecutar y probar tu app.

Opciones de línea de comandos

De forma predeterminada, el servidor de la consola central se conecta a través del puerto 5277. Para anular el host o el puerto (por ejemplo, a los efectos de reenviar a través de SSH), usa la marca --adb=<[localhost:]port>, como en el siguiente ejemplo:

./desktop-head-unit --adb=5999

De forma predeterminada, la DHU emula una consola central compatible con Android Auto con una interfaz de usuario de pantalla táctil. Puedes simular las entradas táctiles de los usuarios haciendo clic en la DHU con un mouse. A fin de emular las consolas centrales que usan un control rotativo para la entrada, puedes usar la marca -i controller, como en este ejemplo:

./desktop-head-unit -i controller

Cuando la DHU está en modo de control rotativo, puedes usar combinaciones de teclas a los efectos de simular las operaciones del control. Si quieres obtener información detallada, consulta Control rotativo. En el modo de control rotativo, la DHU ignorará los clics del mouse, y deberás manejar Android Auto con las operaciones simuladas del control rotativo.

Opción Descripción
-c, --config=FILE Usa el archivo de configuración .ini especificado. Consulta la sección Configura la DHU para obtener más detalles.
-i, --input=INPUT Usa el modo de entrada de texto especificado, uno de los siguientes: touch, rotary o hybrid.
-a, --adb=HOSTPORT Usa el transporte de ADB (host:port o port opcionales). El valor predeterminado es el puerto 5277.
-a, --usb=DEVICE_ID Usa el transporte USB (AOA) (DEVICE_ID opcional).
-v, --version Muestra la información de la versión.
-l, --licenses Muestra las licencias de código abierto.
-h, --headless Se ejecuta en modo sin interfaz gráfica (sin IU).
-t, --always_show_window_on_top Mostrar ventanas de la DHU sobre otras ventanas (desactivadas de forma predeterminada)
-?, --help Muestra este listado de ayuda.

Guía del usuario de la DHU

En esta sección, se describen las funciones compatibles con la versión 2.0 de la DHU y la manera de usarlas.

Los comandos se ingresan en la ventana de la terminal en la que iniciaste la DHU. Se pueden ejecutar varios comandos en la misma línea separándolos con un ;.

Sistema

Comando Clave Descripción
help [command] Muestra el conjunto de comandos completo. Si se especifica un nombre de comando (por ejemplo, help day), muestra ayuda para ese comando.
quit
exit
Alt + Q Sale de la unidad principal.
sleep [seconds] Suspende la unidad durante un segundo. Si se especifica un retraso, se suspende por esa cantidad de seconds. Esto se puede usar para crear secuencias de comandos de la consola central (./desktop-head-unit < script.txt), por ejemplo, en un entorno de CI.
screenshot filename.png Guarda una captura de pantalla en filename.png..
licenses Muestra las licencias de las bibliotecas utilizadas en la DHU.
keycode keycode Envía keycode, uno de los nombres que aparece en la sección Códigos de teclas.

Modo y panel táctiles

Cuando se habilitan el modo o panel táctiles, si haces clic en la ventana de la pantalla (en el primer caso) o en la del panel táctil (en el segundo), se registrarán los eventos táctiles.

En el caso del modo táctil, puedes simular la función multitáctil haciendo clic con el botón derecho en la ubicación del primer dedo y, para el segundo, manteniendo presionado el botón derecho. El punto central de los dos dedos permanecerá fijo, y mover el mouse te permitirá rotarlos alrededor del centro o pellizcar hacia adentro o hacia afuera (o ambos).

En el caso del panel táctil, mantén presionado el botón izquierdo a fin de desplazarte entre diferentes elementos de la IU en la pantalla. Haz clic en el botón derecho para seleccionar el elemento enfocado actualmente.

Comando Clave Descripción
tap x y Simula un evento táctil en las coordenadas especificadas.

Control rotativo

La DHU es compatible con el control rotativo. Cuando está habilitado, se admiten las siguientes acciones:

  • Arriba, abajo, izquierda y derecha en el controlador direccional
  • Rotar en sentido horario y antihorario
  • Rotar y girar (5 pasos a la vez)
  • Hacer clic en Abajo y Atrás en el control

A continuación, se indican los comandos y las vinculaciones de teclas.

Una rueda de desplazamiento en un mouse enviará comandos dpad rotate, y el clic en el botón central del mouse (por lo general, la rueda de desplazamiento) enviará comandos dpad click.

Ten en cuenta que la mayoría de los vehículos tienen pantallas táctiles. Algunos autos solo tienen control rotativo y otros tienen un sistema híbrido de entradas táctiles y de control. Los vehículos también pueden tener compatibilidad con un panel táctil, que podrá usarse para el desplazamiento lateral de mapas y la entrada de texto. Ten en cuenta estas configuraciones diferentes cuando simules distintas consolas centrales de vehículos.

Comando Clave Descripción
dpad {up|down|left|right} Teclas de flecha Movimiento del control rotativo.
dpad {ur|dl|ul|dr} Movimiento del control rotativo.
dpad soft {left|right} Mayúsculas + teclas de flecha Botones laterales disponibles en algunos controles rotativos.
dpad click Volver Presión del control rotativo.
dpad back Retroceso Botón Atrás disponible debajo de algunos controles rotativos.
dpad rotate left 1 Movimiento de control rotativo izquierdo (sentido antihorario).
dpad rotate right 2 Movimiento de control rotativo derecho (sentido horario).
dpad flick left Mayúscula + 1 Giro rápido en sentido antihorario del control rotativo.
dpad flick right Mayúscula + 2 Giro rápido en sentido horario del control rotativo.
dpad 0-9*#+ Teclado numérico

Micrófono

La DHU es compatible con el uso de un micrófono para las entradas de voz o la reproducción de una pista de voz grabada previamente. Te proporcionamos los siguientes archivos de sonido con comandos por voz comunes. Estos archivos de sonido se instalaron en el directorio SDK_LOCATION/extras/google/auto/voice/.

Nombre del archivo Texto
navhome.wav "Navegar a casa"
navwork.wav "Navegar al trabajo"
navsoh.wav "Navegar a la Ópera de Sídney"
navgoogle.wav "Navegar a 1600 Amphitheatre Parkway, California, EE.UU."
exitnav.wav "Salir de la navegación"
howlong.wav "¿En cuánto tiempo llegaré?"
showtraffic.wav "Mostrar estado del tráfico"
showalternateroute.wav "Mostrar rutas alternativas"
pause.wav "Pausar música"
nextturn.wav "¿Cuándo debo doblar?"

Si quieres ejecutar un archivo .wav individual en la DHU, usa el siguiente directorio:

mic play /path/to/filename.wav
Comando Clave Descripción
mic begin M Activa el micrófono (equivalente a hacer clic en el botón del volante) y espera la entrada del micrófono de la computadora.
mic play filename.wav Activa el micrófono y reproduce la grabación del archivo WAV especificado. Nota: No escucharás el archivo WAV en reproducción, pero escucharás la respuesta de Android Auto.
mic repeat Repite la última grabación que se usó con mic play.
mic reject {on|off} Habilita o inhabilita el rechazo de las solicitudes de micrófono. Si activas esta opción, se rechazarán todas las solicitudes del micrófono.

Sensores

La DHU admite la simulación de cambios en los datos del sensor del vehículo con los siguientes comandos. Para simular los datos del sensor y enviarlos a Android Auto, los sensores correspondientes deben habilitarse con el archivo de configuración .ini cuando se inicia la DHU.

Comando Descripción
fuel [percentage] Establece el nivel de combustible en un porcentaje especificado o no pases un valor para inhabilitarlo.
range [km] Establece el rango en los kilómetros especificados o no pases un valor para inhabilitar los datos del rango.
lowfuel [{on|off}] Establece el sensor de advertencia de combustible bajo o no pases un valor para inhabilitarlo.
accel [x] [y] [z] Configura el acelerómetro en los valores especificados de "x", "y" y "z" (m/s^2), o no pases parámetros que quiten la configuración de los datos del acelerómetro. Pasa NAN para omitir parámetros opcionales si es necesario.
compass bearing [pitch] [roll] Establece la brújula para los valores especificados de rumbo, paso y giro (grados). Pasa NAN para omitir parámetros opcionales si es necesario.
gyro [x] [y] [z] Configura el giroscopio en la velocidad de rotación especificada de "x", "y" y "z" (rad/s), o bien no pases parámetros que quiten la configuración de los datos del giroscopio. Pasa NAN para omitir parámetros opcionales si es necesario.
location lat long [accuracy] [altitude] [speed] [bearing] Establece la ubicación en los valores de latitud y longitud especificados, así como la precisión opcional (m), la altitud (m), la velocidad (m/s) y el rumbo (grados). Pasa NAN para omitir parámetros opcionales si es necesario.
odometer km [current_trip_km] Configura el odómetro en los kilómetros especificados junto con un valor opcional de km para el viaje actual.
speed [speed] Establece la velocidad del vehículo en el valor especificado (m/s), o no pases un valor para inhabilitar el sensor.
tollcard {insert|remove} Indica si se insertó o quitó una tarjeta de peaje.

Modo diurno o nocturno

La DHU admite la simulación del cambio entre los modos diurno y nocturno mediante los siguientes comandos y vinculaciones de teclas.

Comando Clave Descripción
day Mayúscula + N Activa el modo diurno (brillo alto, a todo color).
night Ctrl + N Activa el modo nocturno (brillo bajo, contraste alto).
daynight
nightday
N Activa o desactiva el modo diurno o nocturno actual.

Administración de focos

La DHU admite simular el enfoque de Android Auto en la consola central con los siguientes comandos.

Comando Descripción
focus video {on|off|toggle} Habilita o inhabilita si Android Auto tiene foco de video en la consola central. La inhabilitación del foco de video simula que la consola central entra en modo nativo.
focus audio {on|off|toggle} Habilita o inhabilita si Android Auto tiene foco de audio en la consola central. La inhabilitación del foco de audio simula que la consola central reproduce su propia fuente de audio.
focus nav {on|off|toggle} Habilita o inhabilita si Android Auto tiene foco de navegación en la consola central. La inhabilitación del foco de navegación simula que la consola central ejecuta su propio sistema de navegación.

Restricciones/estado de la conducción

La DHU admite la simulación de ciertas restricciones cuando el vehículo está en movimiento, como inhabilitar el teclado y las configuraciones del teléfono.

Comando Clave Descripción
restrict none U Inhabilita todas las restricciones.
restrict all Mayúsculas + U Habilita todas las restricciones (por ejemplo, para simular la conducción).

Clúster de instrumentos

La DHU admite la emulación de un clúster de instrumentos (por lo general ubicado detrás del volante) que muestra información básica durante la navegación acerca del próximo paso (como el nombre de la ruta, la distancia/hora o una flecha de giro) e información sobre una llamada telefónica en curso.

La ventana del clúster de instrumentos de la DHU, que muestra información sobre el estado de la llamada y la navegación

Esto se puede habilitar con la entrada instrumentcluster en la sección [general] del archivo de configuración, o bien con las entradas navcluster o phonecluster para controlar cada función por separado.

[general]
...
instrumentcluster = true

Pantalla de clúster

Algunos vehículos tienen pantallas de clúster capaces de mostrar información visual enriquecida, como los mosaicos de mapas. A partir de la versión 2.1 de la DHU (disponible actualmente a través del canal de actualización de Android Studio Beta), puedes emular esta pantalla en tu máquina de desarrollo.

Esto se puede hacer mediante un archivo de configuración con una sección [display] de clúster. Las secciones [display] admiten las mismas opciones de configuración de video que la pantalla principal configurada en la sección [general] del archivo.

Figura 3: La pantalla principal cuando se ejecuta la DHU con una pantalla de clúster secundaria.
Figura 4: La pantalla del clúster cuando se ejecuta la DHU con una pantalla de clúster secundaria.
...

# The display name following the colon can be whatever you like.
[display:cluster]
# Setting the displaytype as cluster is what lets the DHU know how to handle it.
displaytype = cluster
resolution = 800x480
dpi = 160
...

Esta configuración se puede agregar directamente a un archivo .ini existente o puedes reutilizarla si la colocas en un archivo separado y pasas varios archivos de configuración cuando inicias la DHU. Cuando se usan varios archivos de configuración, las definiciones posteriores de un valor determinado anulan las anteriores.

# Launch your landscape configuration with your cluster display configuration
./desktop-head-unit -c landscape.ini -c cluster.ini

# Launch the portait configuration with the same cluster display configuration
./desktop-head-unit -c portrait.ini -c cluster.ini

Estado de la reproducción de contenido multimedia

La DHU es compatible con una pantalla de información adicional que muestra el estado de reproducción de contenido multimedia (por ejemplo, qué pista se está reproduciendo).

Ventana de estado de reproducción de contenido multimedia de la DHU que muestra información de reproducción

Esto se puede habilitar mediante la entrada playbackstatus en la sección [general].

[general]
...
playbackstatus = true

Códigos de teclas

La DHU proporciona un conjunto de códigos predeterminados de teclas que simula el conjunto de botones de combinación de teclas que suelen estar disponibles en diferentes vehículos. Por ejemplo, el código de tecla home se puede activar en el mensaje de la DHU de la siguiente manera:

keycode home
Clave de código Descripción
home Ir a la pantalla principal
back Volver
call
endcall
Hacer una llamada o finalizarla
search Activar una búsqueda
media_play_pause
media_play
media_pause
Reproducir o pausar contenido multimedia
media_next
media_previous
Ir a la pista multimedia siguiente o a la anterior
media Ir a la app de música predeterminada
navigation Ir a la app de navegación predeterminada
tel Ir a la app de teléfono predeterminada

Configura la DHU

La DHU admite un archivo de configuración .ini a los efectos de cambiar los modos disponibles de entrada de texto (táctil, por control), la velocidad de fotogramas, la resolución y los DPI que la consola central solicita desde el teléfono.

La ubicación predeterminada del archivo de configuración es ~/.android/headunit.ini. Si deseas cambiar la configuración de la consola central en tu sistema, puedes modificar este archivo.

También puedes especificar un archivo de configuración para cargar mediante la marca -c.

./desktop-head-unit -c /path/to/config.ini
Configuración de ejemplo
[general]
touch = true
touchpad = false
controller = false
instrumentcluster = false
resolution = 800x480
dpi = 160
framerate = 30
fueltypes = unleaded,electric,hydrogen
evconnectors = supercharger

Se pueden encontrar archivos de configuración de ejemplo en la carpeta SDK_LOCATION/extras/google/auto/config/ que demuestran diferentes configuraciones de consolas centrales que puedes usar para realizar pruebas. Para casos de uso más avanzados, consulta la configuración compatible que se incluye a continuación.

Configuración de entrada
Nombre Predeterminado Tipo Descripción
inputmode default String Define el modo de entrada. Las opciones touch, rotary, hybrid habilitan e inhabilitan la compatibilidad con la pantalla táctil y el control rotativo, y establecen los códigos predeterminados de teclas según corresponda, mientras que default difiere a las opciones touch y controller que se incluyen a continuación.
controller false Booleano Habilita la entrada del control rotativo. Se ignorará, a menos que inputmode sea default.
touch true Booleano Habilita la pantalla táctil. Se ignorará, a menos que inputmode sea default.
touchpad false Booleano Habilita el panel táctil.
touchpadnavigation false Booleano Habilita el panel táctil que se usará en la navegación de la IU.
touchpadtapasselect false Booleano Si es verdadero, presionar el panel táctil será un evento de selección.
touchpaduiabsolute false Booleano Cuando touchpadnavigation es true, esto establece si los toques deben tratarse como absolutos o como gestos.
Configuración de video

Android Auto admite tres resoluciones de video:

  1. 480 píxeles (800 x 480, el valor predeterminado)
  2. 720 p (1280 x 720)
  3. 1080 p (1920 x 1080)

A fin de admitir relaciones de aspecto distintas de las anteriores, se puede especificar en la consola central un margen en letterbox (formato 16:9) o letterbox (formato 16:9), según sea necesario. Por ejemplo, si quisieras una pantalla de 1000 x 600, deberías establecer la resolución en 720 p (1280 x 720) y un margen con 280 de ancho y 120 de altura. Esto tendrá el efecto de agregar un margen de 140 px en los bordes izquierdo y derecho, y uno de 60 px en los bordes superior e inferior.

Configuración de ejemplo para emular una pantalla típica de 6 pulgadas (750 x 450):

[general]
...
resolution = 800x480
marginwidth = 50
marginheight = 30

Y otra para una pantalla muy ancha:

[general]
...
resolution = 1280x720
marginwidth = 0
marginheight = 220
Nombre Predeterminado Tipo Descripción
resolution 800x480 Strings Uno de los siguientes: 800x480, 1280x720 o 1920x1080.
dpi 160 Entero
normalizedpi false Booleano Cuando es true, reduce el tamaño de ventana de la DHU a fin de tener valores de DPI más grandes. Cuando es false, los valores de DPI más grandes generan ventanas más grandes (que no imitan pantallas reales, pero permiten inspeccionar el contenido visual con mayor facilidad).
realdpi 160 Entero Se usa en la configuración de video.
framerate 30 Entero Se usa en la configuración de video.
marginheight 0 Entero Se usa en la configuración de video.
marginwidth 0 Entero Se usa en la configuración de video.
margins 0,0,0,0 String Se usa en la configuración de video. Anula marginwidth y marginheight si están presentes. El formato es arriba, abajo, izquierda y derecha.
contentinsets 0,0,0,0 String Se usa en la configuración de video. El formato es arriba, abajo, izquierda y derecha.
stablecontentinsets 0,0,0,0 String Se usa en la configuración de video. El valor predeterminado es el de contentinsets. El formato es arriba, abajo, izquierda y derecha.
cropmargins false Booleano Si se especifican margins, marginheight o marginwidth, un valor true para esta configuración quita esos márgenes del video que se muestra. Esto refleja en mayor medida lo que ve el usuario final.
pixelaspectratio 1.0 Flotante Se usa en la configuración de video.
Configuración de los sensores

Para simular datos del sensor y enviarlos a Android Auto, debes habilitar los sensores correspondientes con las opciones que aparecen a continuación. Si se inhabilita un sensor, se ignorará cualquier dato que se envíe para ese sensor mediante los comandos de la DHU.

Nombre Predeterminado Tipo Descripción
accelerometer false Booleano Habilita los datos del sensor del acelerómetro.
compass false Booleano Habilita los datos del sensor de la brújula.
driving_status false Booleano Habilita los datos del sensor del estado de conducción.
fuel false Booleano Habilita los datos del sensor del combustible.
gyroscope false Booleano Habilita los datos del sensor del giroscopio.
location false Booleano Habilita los datos del sensor de la ubicación del vehículo.
night_mode false Booleano Habilita los datos del sensor del modo nocturno.
odometer false Booleano Habilita los datos del sensor del odómetro.
speed false Booleano Habilita los datos del sensor de la velocidad.
toll_card false Booleano Habilita los datos del sensor de la tarjeta de peaje.
Varios
Nombre Predeterminado Tipo Descripción
instrumentcluster false Booleano Habilitar el clúster de instrumentos. Agregar una ventana a la IU para mostrar el estado de la navegación y el teléfono.
navcluster false Booleano Habilitar el clúster de instrumentos. Agregar una ventana a la IU para mostrar el estado de la navegación.
phonecluster false Booleano Habilitar el clúster de instrumentos. Agregar una ventana a la IU para mostrar el estado del teléfono.
playbackstatus false Booleano Habilitar el estado de reproducción. Agregar una ventana a la IU para mostrar los mensajes de estado de la reproducción.
driverposition left String Uno de los siguientes: left, center o right.
windowleft Entero Establecer la posición izquierda de la ventana principal.
windowtop Entero Establece la posición superior de la ventana principal.
fueltypes unleaded Strings Uno o más de (separados por una ","):
  • unleaded
  • leaded
  • diesel-1
  • diesel-2
  • biodiesel
  • e85
  • lpg
  • cng
  • lng
  • hydrogen
  • electric
  • other
  • unknown
evconnectors Strings Cero o más de (separados por una ","):
  • j1772
  • mennekes
  • chademo
  • combo-1
  • combo-2
  • roadster
  • hpwc
  • gbt
  • supercharger
  • other
  • unknown
Solo se debe establecer si fueltypes contiene electric.

Solución de problemas

Aparece una pantalla en blanco al conectarse la DHU por primera vez

Este es un problema conocido en el que estamos trabajando. Para solucionarlo, haz lo siguiente:

  1. Cierra la DHU.
  2. Sigue el paso 5 que se describe en Ejecuta la DHU para detener el servidor de la consola central y reiniciarlo.
  3. Vuelve a iniciar la DHU.
  4. Es posible que se muestren pasos adicionales de solicitud de permisos en la pantalla del teléfono. Complétalos. Es posible que la DHU se apague una vez más.
  5. Reinicia la DHU.

Prueba tu app para el SO Android Automotive

Puedes usar Android Emulator para probar cómo se ejecutan las apps en el SO Android Automotive. En esta sección, se describe cómo configurar un dispositivo virtual de Android (AVD) a fin de probar tu app.

Edita las configuraciones de ejecución de apps de música

Las apps de música en las apps del SO Automotive son diferentes de otras apps para Android. El SO Android Automotive interactúa con tu app de música utilizando intents explícitos y enviando llamadas a tu servicio de navegador multimedia.

Si quieres probar tu app, verifica que no tenga actividad de inicio en su manifiesto y, luego, evita que tu módulo automotor se inicie con una actividad. Para ello, sigue estos pasos:

  1. En Android Studio, selecciona Run > Edit Configurations.

    El cuadro de diálogo Run/Debug Configurations.

  2. Selecciona el módulo automotriz desde la lista de módulos de tu app.

  3. En Launch Options > Launch, selecciona Nothing.

  4. Haz clic en Apply y, luego, en OK.

Agrega imágenes del sistema

Antes de crear AVD que coincidan con el hardware de fabricantes específicos, debes agregar imágenes del sistema para estos dispositivos mediante el SDK Manager de Android Studio. Luego, cuando crees un AVD, podrás descargar estas imágenes del sistema para usarlas con el AVD.

Agrega imágenes del sistema de fabricantes de automóviles

Puedes agregar una imagen del sistema específica de OEM para GM, Honda, Polestar, Volvo y otros. Sigue los pasos que se indican en los sitios para desarrolladores de OEM:

En orden alfabético:

  1. GM
  2. Honda
  3. Polestar
  4. Volvo

Instala imágenes genéricas del sistema

Android Studio también incluye una imagen genérica del sistema para el SO Android Automotive que puedes usar a fin de probar tu app. Esta imagen incluye Asistente de Google para que puedas probar la integración de tu app.

Sigue estos pasos a los efectos de instalar la imagen genérica del sistema:

  1. En Android Studio, selecciona Tools > SDK Manager.
  2. Haz clic en la pestaña SDK Platforms.
  3. Haz clic en Show Package Details.
  4. En Android 9.0 (Pie), selecciona Automotive Intel x86 Atom System Image.
  5. Haz clic en Apply y, a continuación, en OK.

    Lista de componentes de la plataforma del SDK con la imagen genérica del sistema seleccionada.

Crea un AVD de vehículo y ejecuta el emulador

Sigue estos pasos a fin de crear un dispositivo virtual de Android (AVD) que represente un vehículo con SO Android Automotive y, luego, usa ese AVD para ejecutar el emulador:

  1. En Android Studio, selecciona Tools > AVD Manager.
  2. Haz clic en Create Virtual Device.
  3. En el diálogo Select Hardware, selecciona Automotive y un dispositivo y, luego, haz clic en Next.
  4. Selecciona una imagen del sistema destinada a Automotive, como Android 9.0 (Automotive) y, luego, haz clic en Next.
  5. Asigna el AVD y selecciona otras opciones que quieras personalizar. Luego, haz clic en Finish.
  6. En la barra de ventanas de herramientas, selecciona tu AVD del SO Android Automotive como destino de implementación.
  7. Haz clic en Run Ícono Run.

Requisitos de pruebas adicionales para apps de música

Si estás probando una app de música, también deberías probar las situaciones que se tratan en esta sección (además de probar la app en Android Auto, en el SO Android Automotive o en ambos).

Prueba situaciones de inicio de MediaBrowserService

A fin de ayudar a que los conductores y los pasajeros permanezcan seguros, los usuarios tienen restricciones adicionales para interactuar con las apps mientras conducen. Por este motivo, Android Auto y el SO Android Automotive tienen algunas situaciones de inicio de MediaBrowserService que tu app debe poder controlar de modo que los usuarios puedan seguir disfrutando de tu contenido mientras viajan.

Prueba tu app para asegurarte de que pueda manejar cada una de las siguientes situaciones:

  • Antes de que se abra alguna Activity, se ejecuta MediaBrowserService.
  • Si no puede mostrar ninguna Activity, se ejecuta MediaBrowserService.
  • Si el usuario no accedió, se ejecuta MediaBrowserService.

Mientras pruebas estas situaciones, asegúrate de probar los siguientes métodos:

  • Fuerza la detención de la app de música y, luego, inicia Android Auto o el SO Android Automotive.
  • Borra los datos de la app de música y, luego, inicia Android Auto o el SO Android Automotive.

Además, asegúrate de configurar un mensaje de error apropiado cuando sea necesario.

Herramientas de prueba de multimedia

La app de prueba del controlador multimedia te permite probar las complejidades de la reproducción de contenido multimedia en Android y verificar la implementación de tu sesión multimedia. Para comenzar a usar esta herramienta, consulta Cómo usar la app de prueba del controlador multimedia.