2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、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 および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[[["わかりやすい","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"]],["最終更新日 2025-07-27 UTC。"],[],[],null,["# Key input\n\nBased on the Vehicle HAL property `VEHICLE_PROPERTY_HW_KEY_INPUT`, defined in\n`hardware/libhardware/include/hardware/vehicle.h`, Android Automotive handles key input\nfrom elements that include steering remote switches, hardware buttons, and touch panels.\n\nFor example, dispatch of a key event over a CAN bus network:\n\n**Figure 1.**Android Automotive key events over CANbus flow.\n\nKey event data\n--------------\n\nThe following data is attached to each key event in the Vehicle HAL:\n\n- Input action (up/down): \n\n ```scdoc\n VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0,\n VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,\n ```\n- Key code mapped to Android keys in a partner implementation of the Vehicle HAL.\n- Target display (main/instrument cluster): \n\n ```scdoc\n VEHICLE_DISPLAY_MAIN = 0,\n VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,\n ```\n\nThe key input handling in the instrument cluster uses `CarInputService` (the same\nservice uses for the regular input handling in the vehicle). Key events get propagated to the\n`InstrumentClusterRenderingService`: \n\n```transact-sql\npublic class MyClusterRenderingService extends\nInstrumentClusterRenderingService {\n ...\n @Override protected void onKeyEvent(KeyEvent keyEvent) { /* Inject to\n Presentation? */ }\n}\n```"]]