キー入力

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