关键输入

基于车辆 HAL 属性 VEHICLE_PROPERTY_HW_KEY_INPUT(在 hardware/libhardware/include/hardware/vehicle.h 中定义),Android Automotive 处理来自包括方向盘远程开关、硬件按钮和触摸面板等元素的按键输入。

例如,通过 CAN 总线网络分发按键事件

Key event

图 1.** Android Automotive 通过 CAN 总线的按键事件流。

按键事件数据

以下数据附加到车辆 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? */ }
}