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 da tasti
di elementi che includono interruttori del telecomando dello sterzo, pulsanti hardware e pannelli touch.
Ad esempio, l'invio di un evento chiave su una rete CAN bus:
Figura 1. Eventi chiave Android Automotive nel flusso CANbus.
Dati sugli eventi chiave
I seguenti dati sono associati a ogni evento chiave nell'HAL del veicolo:
- Azione di input (su/giù):
VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0, VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
- Codice chiave mappato alle chiavi Android in un'implementazione partner dell'HAL del veicolo.
- Display di destinazione (principale/strumenti):
VEHICLE_DISPLAY_MAIN = 0, VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,
La gestione dell'inserimento delle chiavi nel quadro strumenti utilizza CarInputService
(lo stesso servizio utilizzato per la normale gestione dell'inserimento nel veicolo). Gli eventi chiave vengono propagati a
InstrumentClusterRenderingService
:
public class MyClusterRenderingService extends InstrumentClusterRenderingService { ... @Override protected void onKeyEvent(KeyEvent keyEvent) { /* Inject to Presentation? */ } }