Entrada clave

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 controles 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:

Evento clave

Figura 1. Eventos clave de Android Automotive en el flujo de CANbus.

Datos de eventos clave

Los siguientes datos se adjuntan a cada evento clave en el HAL del vehículo:

  • 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 entrada clave en el grupo de instrumentos usa CarInputService (el mismo servicio que se usa para el manejo de entrada regular 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? */ }
}