Com base na propriedade VEHICLE_PROPERTY_HW_KEY_INPUT
da HAL do veículo, definida em
hardware/libhardware/include/hardware/vehicle.h
: o Android Automotive processa a entrada de teclas
de elementos que incluem interruptores do volante do controle remoto, botões físicos e painéis de toque.
Por exemplo, o envio de um evento de tecla por uma rede de barramento CAN:
Figura 1. Eventos principais do Android Automotive sobre o fluxo do CANbus.
Dados de eventos principais
Os dados a seguir são anexados a cada evento de tecla na HAL do veículo:
- Ação de entrada (para cima/para baixo):
VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0, VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
- Código de tecla mapeado para chaves do Android em uma implementação de parceiro da HAL do veículo.
- Tela de destino (cluster principal/de instrumento):
VEHICLE_DISPLAY_MAIN = 0, VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,
O processamento de entrada de teclas no cluster de instrumentos usa CarInputService
(o mesmo
usa para o manuseio normal de entradas no veículo). Os eventos principais são propagados para
InstrumentClusterRenderingService
:
public class MyClusterRenderingService extends InstrumentClusterRenderingService { ... @Override protected void onKeyEvent(KeyEvent keyEvent) { /* Inject to Presentation? */ } }