Com base na propriedade HAL do veículo 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, envio de um evento chave através de uma rede CAN bus:
Figura 1. Eventos chave do Android Automotive sobre fluxo CANbus.
Dados chave do evento
Os seguintes dados 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-chave mapeado para chaves 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,
A manipulação de entrada chave no painel de instrumentos usa CarInputService
(o mesmo serviço usado para a manipulação 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? */ } }