基於在hardware/libhardware/include/hardware/vehicle.h
中定義的車輛 HAL 屬性VEHICLE_PROPERTY_HW_KEY_INPUT
,Android Automotive 處理來自轉向遠端開關、硬體按鈕和觸控面板等元素的按鍵輸入。
例如,透過 CAN 總線網路傳送關鍵事件:
圖 1. Android Automotive 透過 CANbus 流的關鍵事件。
關鍵事件數據
以下數據附加到 Vehicle HAL 中的每個關鍵事件:
- 輸入操作(上/下):
VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0, VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
- 在車輛 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? */ } },
基於在hardware/libhardware/include/hardware/vehicle.h
中定義的車輛 HAL 屬性VEHICLE_PROPERTY_HW_KEY_INPUT
,Android Automotive 處理來自轉向遠端開關、硬體按鈕和觸控面板等元素的按鍵輸入。
例如,透過 CAN 總線網路傳送關鍵事件:
圖 1. Android Automotive 透過 CANbus 流的關鍵事件。
關鍵事件數據
以下數據附加到 Vehicle HAL 中的每個關鍵事件:
- 輸入操作(上/下):
VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0, VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
- 在車輛 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? */ } }