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