Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
Schlüsseleingabe
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
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? */ }
}
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[],[],null,["# Key input\n\nBased on the Vehicle HAL property `VEHICLE_PROPERTY_HW_KEY_INPUT`, defined in\n`hardware/libhardware/include/hardware/vehicle.h`, Android Automotive handles key input\nfrom elements that include steering remote switches, hardware buttons, and touch panels.\n\nFor example, dispatch of a key event over a CAN bus network:\n\n**Figure 1.**Android Automotive key events over CANbus flow.\n\nKey event data\n--------------\n\nThe following data is attached to each key event in the Vehicle HAL:\n\n- Input action (up/down): \n\n ```scdoc\n VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0,\n VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,\n ```\n- Key code mapped to Android keys in a partner implementation of the Vehicle HAL.\n- Target display (main/instrument cluster): \n\n ```scdoc\n VEHICLE_DISPLAY_MAIN = 0,\n VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,\n ```\n\nThe key input handling in the instrument cluster uses `CarInputService` (the same\nservice uses for the regular input handling in the vehicle). Key events get propagated to the\n`InstrumentClusterRenderingService`: \n\n```transact-sql\npublic class MyClusterRenderingService extends\nInstrumentClusterRenderingService {\n ...\n @Override protected void onKeyEvent(KeyEvent keyEvent) { /* Inject to\n Presentation? */ }\n}\n```"]]