Entrada de tecla

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:

Evento principal

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