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