Según la propiedad HAL del vehículo VEHICLE_PROPERTY_HW_KEY_INPUT
, definida en hardware/libhardware/include/hardware/vehicle.h
, Android Automotive maneja la entrada clave de elementos que incluyen interruptores remotos de dirección, botones de hardware y paneles táctiles.
Por ejemplo, envío de un evento clave a través de una red de bus CAN:
Figura 1. Eventos clave de Android Automotive sobre el flujo de CANbus.
Datos clave del evento
Los siguientes datos se adjuntan a cada evento clave en el vehículo HAL:
- Acción de entrada (arriba/abajo):
VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0, VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
- Código de clave asignado a claves de Android en una implementación asociada de Vehicle HAL.
- Pantalla de destino (principal/grupo de instrumentos):
VEHICLE_DISPLAY_MAIN = 0, VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,
El manejo de entradas clave en el grupo de instrumentos utiliza CarInputService
(el mismo servicio que se utiliza para el manejo de entradas regulares en el vehículo). Los eventos clave se propagan a InstrumentClusterRenderingService
:
public class MyClusterRenderingService extends InstrumentClusterRenderingService { ... @Override protected void onKeyEvent(KeyEvent keyEvent) { /* Inject to Presentation? */ } },
Según la propiedad HAL del vehículo VEHICLE_PROPERTY_HW_KEY_INPUT
, definida en hardware/libhardware/include/hardware/vehicle.h
, Android Automotive maneja la entrada clave de elementos que incluyen interruptores remotos de dirección, botones de hardware y paneles táctiles.
Por ejemplo, envío de un evento clave a través de una red de bus CAN:
Figura 1. Eventos clave de Android Automotive sobre el flujo de CANbus.
Datos clave del evento
Los siguientes datos se adjuntan a cada evento clave en el vehículo HAL:
- Acción de entrada (arriba/abajo):
VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0, VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
- Código de clave asignado a claves de Android en una implementación asociada de Vehicle HAL.
- Pantalla de destino (principal/grupo de instrumentos):
VEHICLE_DISPLAY_MAIN = 0, VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,
El manejo de entradas clave en el grupo de instrumentos utiliza CarInputService
(el mismo servicio que se utiliza para el manejo de entradas regulares en el vehículo). Los eventos clave se propagan a InstrumentClusterRenderingService
:
public class MyClusterRenderingService extends InstrumentClusterRenderingService { ... @Override protected void onKeyEvent(KeyEvent keyEvent) { /* Inject to Presentation? */ } }