按鍵輸入

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