Inserimento chiave

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:

Evento chiave

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