基於在hardware/libhardware/include/hardware/vehicle.h
中定義的 Vehicle HAL 屬性VEHICLE_PROPERTY_HW_KEY_INPUT
,Android Automotive 處理來自包括轉向遙控開關、硬件按鈕和触摸面板在內的元素的鍵輸入。
例如,通過 CAN 總線網絡發送關鍵事件:
圖 1. CANbus 流上的 Android Automotive 關鍵事件。
關鍵事件數據
以下數據附加到 Vehicle HAL 中的每個關鍵事件:
- 輸入動作(上/下):
VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0, VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
- 在 Vehicle HAL 的合作夥伴實現中映射到 Android 鍵的鍵代碼。
- 目標顯示(主/儀表組):
VEHICLE_DISPLAY_MAIN = 0, VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,
儀表組中的關鍵輸入處理使用CarInputService
(與車輛中的常規輸入處理相同的服務)。關鍵事件被傳播到InstrumentClusterRenderingService
:
public class MyClusterRenderingService extends InstrumentClusterRenderingService { ... @Override protected void onKeyEvent(KeyEvent keyEvent) { /* Inject to Presentation? */ } }