A partire dal 27 marzo 2025, ti consigliamo di utilizzare android-latest-release
anziché aosp-main
per compilare e contribuire ad AOSP. Per ulteriori informazioni, vedi Modifiche ad AOSP.
Immissione di chiavi
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
In base alla proprietà HAL del veicolo VEHICLE_PROPERTY_HW_KEY_INPUT
, definita in
hardware/libhardware/include/hardware/vehicle.h
, Android Automotive gestisce l'input da tasti
di elementi che includono interruttori del telecomando dello sterzo, pulsanti hardware e pannelli touch.
Ad esempio, l'invio di un evento chiave su una rete CAN bus:

Figura 1. Eventi chiave Android Automotive nel flusso CANbus.
Dati sugli eventi chiave
I seguenti dati sono associati a ogni evento chiave nell'HAL del veicolo:
- Azione di input (su/giù):
VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0,
VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
- Codice chiave mappato alle chiavi Android in un'implementazione partner dell'HAL del veicolo.
- Display di destinazione (principale/strumenti):
VEHICLE_DISPLAY_MAIN = 0,
VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,
La gestione dell'inserimento delle chiavi nel quadro strumenti utilizza CarInputService
(lo stesso servizio utilizzato per la normale gestione dell'inserimento nel veicolo). Gli eventi chiave vengono propagati a
InstrumentClusterRenderingService
:
public class MyClusterRenderingService extends
InstrumentClusterRenderingService {
...
@Override protected void onKeyEvent(KeyEvent keyEvent) { /* Inject to
Presentation? */ }
}
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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```"]]