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