hardware/libhardware/include/hardware/vehicle.h
で定義されている Vehicle HAL プロパティVEHICLE_PROPERTY_HW_KEY_INPUT
に基づいて、Android Automotive はステアリング リモート スイッチ、ハードウェア ボタン、タッチ パネルなどの要素からのキー入力を処理します。
たとえば、CAN バス ネットワーク経由でキー イベントをディスパッチすると、次のようになります。
図 1. CANbus フロー上の Android Automotive の主要イベント。
主要なイベントデータ
次のデータは、Vehicle HAL の各キー イベントに添付されます。
- 入力アクション (上/下):
VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0, VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
- Vehicle 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
で定義されている Vehicle HAL プロパティVEHICLE_PROPERTY_HW_KEY_INPUT
に基づいて、Android Automotive はステアリング リモート スイッチ、ハードウェア ボタン、タッチ パネルなどの要素からのキー入力を処理します。
たとえば、CAN バス ネットワーク経由でキー イベントをディスパッチすると、次のようになります。
図 1. CANbus フロー上の Android Automotive の主要イベント。
主要なイベントデータ
次のデータは、Vehicle HAL の各キー イベントに添付されます。
- 入力アクション (上/下):
VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0, VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
- Vehicle 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? */ } }