按鍵輸入,按鍵輸入

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