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 remoti dello sterzo, pulsanti hardware e pannelli a sfioramento.
Ad esempio, invio di un evento chiave su una rete CAN-Bus:
Figura 1. Eventi chiave di Android Automotive sul flusso CANbus.
Dati sugli eventi chiave
I seguenti dati sono allegati a ciascun 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 sulle chiavi Android in un'implementazione partner dell'HAL del veicolo.
- Display di destinazione (principale/quadro strumenti):
VEHICLE_DISPLAY_MAIN = 0, VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,
La gestione degli input chiave nel quadro strumenti utilizza CarInputService
(lo stesso servizio utilizzato per la gestione regolare degli input nel veicolo). Gli eventi chiave vengono propagati a InstrumentClusterRenderingService
:
public class MyClusterRenderingService extends InstrumentClusterRenderingService { ... @Override protected void onKeyEvent(KeyEvent keyEvent) { /* Inject to Presentation? */ } }