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