На основе свойства Vehicle HAL VEHICLE_PROPERTY_HW_KEY_INPUT , определенного в hardware/libhardware/include/hardware/vehicle.h , Android Automotive обрабатывает ключевой ввод от таких элементов, как дистанционные переключатели на рулевом колесе, аппаратные кнопки и сенсорные панели.
Например, отправка ключевого события по сети CAN-шины:

Рис. 1. Ключевые события Android Automotive в потоке CANbus.
Данные о ключевых событиях
К каждому ключевому событию в HAL транспортного средства прикрепляются следующие данные:
- Действие ввода (вверх/вниз):
VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0, VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
- Код ключа сопоставлен с ключами Android в партнерской реализации Vehicle HAL.
- Целевой дисплей (основной/приборная панель):
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? */ }
}