Entrada de chave

Com base na propriedade Vehicle HAL VEHICLE_PROPERTY_HW_KEY_INPUT , definida em hardware/libhardware/include/hardware/vehicle.h , o Android Automotive lida com a entrada de teclas de elementos que incluem interruptores remotos de direção, botões de hardware e painéis de toque.

Por exemplo, despacho de um evento chave em uma rede de barramento CAN:

Evento-chave

Figura 1. Eventos de chave do Android Automotive no fluxo CANbus.

Dados-chave do evento

Os dados a seguir são anexados a cada evento chave 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 de chave mapeado para chaves do Android em uma implementação de parceiro do Vehicle HAL.
  • Exibição de destino (cluster principal/instrumento):
    VEHICLE_DISPLAY_MAIN               = 0,
    VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,
    

O manuseio de entrada de chave no painel de instrumentos usa CarInputService (o mesmo serviço usado para o manuseio de entrada regular no veículo). Os principais eventos são propagados para o InstrumentClusterRenderingService :

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