Immissione tasto

In base alla proprietà HAL del veicolo VEHICLE_PROPERTY_HW_KEY_INPUT, definita in hardware/libhardware/include/hardware/vehicle.h, Android Automotive gestisce l'input chiave da elementi che includono interruttori a distanza dello sterzo, pulsanti hardware e pannelli touch.

Ad esempio, invio di un evento chiave su una rete CAN bus:

Evento chiave

Figura 1. Eventi chiave di Android Automotive tramite flusso CANbus.

Dati sugli eventi chiave

A ogni evento chiave nell'HAL del veicolo sono allegati i seguenti dati:

  • Azione di input (su/giù):
    VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0,
    VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
  • Codice della chiave mappato alle chiavi Android in un'implementazione partner dell'HAL per veicoli.
  • Display target (principale/quadro strumenti):
    VEHICLE_DISPLAY_MAIN               = 0,
    VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,

La gestione degli input delle chiavi nel quadro strumenti utilizza CarInputService (lo stesso per la normale gestione degli input nel veicolo). Gli eventi chiave vengono propagati InstrumentClusterRenderingService:

public class MyClusterRenderingService extends
InstrumentClusterRenderingService {
    ...
    @Override protected void onKeyEvent(KeyEvent keyEvent) { /* Inject to
    Presentation? */ }
}