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 remotos de direção, botões de hardware e painéis sensíveis ao toque.

Por exemplo, o envio de um evento principal em uma rede de barramento CAN:

Evento principal

Figura 1. Eventos principais do Android Automotive sobre o fluxo CANbus.

Dados de eventos principais

Os seguintes dados são anexados a cada evento principal no 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 da chave mapeado para chaves do Android em uma implementação de parceiro do HAL do veículo.
  • Tela de destino (cluster principal/de instrumentos):
    VEHICLE_DISPLAY_MAIN               = 0,
    VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,

O processamento de entrada de chave no conjunto de instrumentos usa CarInputService, o mesmo serviço usado para o processamento de entrada normal no veículo. Os eventos principais são propagados para o InstrumentClusterRenderingService:

public class MyClusterRenderingService extends
InstrumentClusterRenderingService {
    ...
    @Override protected void onKeyEvent(KeyEvent keyEvent) { /* Inject to
    Presentation? */ }
}