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