Tasteneingabe

Basierend auf der Fahrzeug-HAL-Eigenschaft VEHICLE_PROPERTY_HW_KEY_INPUT, definiert in hardware/libhardware/include/hardware/vehicle.h, Android Automotive übernimmt die Schlüsseleingabe von Elementen wie der Steuerung von Fernschaltern, Hardwaretasten und Touchpanels.

Zum Beispiel wird ein Schlüsselereignis über ein CAN-Bus-Netzwerk ausgelöst:

Schlüsselereignis

Abbildung 1. Wichtige Ereignisse von Android Automotive über den CANbus-Ablauf.

Daten zu Schlüsselereignissen

An jedes Schlüsselereignis im Fahrzeug-HAL werden die folgenden Daten angehängt:

  • Eingabeaktion (nach oben/unten):
    VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0,
    VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
  • Schlüsselcode, der Android-Schlüsseln in einer Partnerimplementierung des Fahrzeug-HAL zugeordnet ist.
  • Zielanzeige (Haupt-/Kombi-Instrument):
    VEHICLE_DISPLAY_MAIN               = 0,
    VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,

Für die Tasteneingabe im Kombi-Instrument wird CarInputService (dieselbe die der Dienst für die normale Eingabeverarbeitung im Fahrzeug verwendet. Schlüsselereignisse werden an die InstrumentClusterRenderingService:

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