自 2026 年起,为了与我们的主干稳定开发模型保持一致,并确保生态系统的平台稳定性,我们将在第 2 季度和第 4 季度将源代码发布到 AOSP。对于构建 AOSP 和向 AOSP 贡献代码,我们建议使用 android-latest-release 而不是 aosp-main。android-latest-release 清单分支将始终引用推送到 AOSP 的最新版本。如需了解详情,请参阅 AOSP 变更。
按键输入
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
Android Automotive 根据 hardware/libhardware/include/hardware/vehicle.h 中定义的车载 HAL 属性 VEHICLE_PROPERTY_HW_KEY_INPUT 处理来自转向远程开关、硬件按钮和触摸面板等元素的按键输入。
例如,通过 CAN 总线网络调度按键事件:

图 1. 通过 CAN 总线调度 Android Automotive 按键事件的流程。
按键事件数据
车载 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? */ }
}
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-12-03。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-12-03。"],[],[]]