按鍵輸入

基於在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? */ }
}