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:
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? */ } }