hardware/libhardware/include/hardware/vehicle.h
에 정의된 차량 HAL 속성 VEHICLE_PROPERTY_HW_KEY_INPUT
을 기반으로 Android Automotive는 조종 원격 스위치, 하드웨어 버튼, 터치 패널을 포함한 요소의 키 입력을 처리합니다.
예를 들어, CAN 버스 네트워크를 통해 주요 이벤트를 전달합니다.
그림 1. CANbus 흐름을 통한 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? */ } }