키 입력

hardware/libhardware/include/hardware/vehicle.h에 정의된 차량 HAL 속성 VEHICLE_PROPERTY_HW_KEY_INPUT에 따라 Android Automotive는 핸들 원격 스위치, 하드웨어 버튼 및 터치 패널을 포함하는 요소의 키 입력을 처리합니다.

예를 들어 다음과 같이 CAN 버스 네트워크를 통해 키 이벤트를 전달합니다.

키 이벤트

그림 1. CAN 버스 흐름을 통한 Android Automotive 키 이벤트

키 이벤트 데이터

다음 데이터는 차량 HAL의 각 키 이벤트에 연결됩니다.

  • 입력 작업(위/아래):
    VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0,
    VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
  • 차량 HAL의 파트너 구현에서 Android 키에 매핑된 키 코드입니다.
  • 타겟 디스플레이(Main/Instrument Cluster):
    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? */ }
}