Tasteneingabe

Basierend auf der in hardware/libhardware/include/hardware/vehicle.h definierten HAL-Eigenschaft VEHICLE_PROPERTY_HW_KEY_INPUT verarbeitet Android Automotive die Eingabe von Tastenelementen wie Lenkradfernschaltern, Hardwareschaltern und Touchbedienungen.

Beispiel: Senden eines Schlüsselereignisses über ein CAN-Bus-Netzwerk:

Schlüsselereignis

Abbildung 1. Android Automotive-Schlüsselereignisse über CANbus-Datenverkehr.

Daten zu Schlüsselereignissen

Den einzelnen Schlüsselereignissen in der Vehicle HAL sind die folgenden Daten zugeordnet:

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

Für die Schlüsseleingabe im Kombiinstrument wird CarInputService verwendet, derselbe Dienst, der auch für die normale Eingabe im Fahrzeug verwendet wird. Schlüsselereignisse werden an die InstrumentClusterRenderingService weitergegeben:

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