Según la propiedad VEHICLE_PROPERTY_HW_KEY_INPUT
de la HAL del vehículo, definida en hardware/libhardware/include/hardware/vehicle.h
, Android Automotive controla la entrada de teclas de elementos que incluyen interruptores remotos del volante, botones de hardware y paneles táctiles.
Por ejemplo, el envío de un evento de tecla a través de una red de bus CAN:
Figura 1: Eventos clave de Android Automotive a través del flujo de CANbus.
Datos de eventos clave
Los siguientes datos se adjuntan a cada evento clave en el sistema HAL del vehículo:
- Acción de entrada (arriba/abajo):
VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0, VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
- Código de clave asignado a claves de Android en una implementación de socio del sistema HAL del vehículo.
- Pantalla de destino (clúster principal o de instrumentos):
VEHICLE_DISPLAY_MAIN = 0, VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,
El control de entradas de teclas en el panel de instrumentos usa CarInputService
(el mismo servicio que se usa para el control de entradas normal en el vehículo). Los eventos de teclas se propagan a InstrumentClusterRenderingService
:
public class MyClusterRenderingService extends InstrumentClusterRenderingService { ... @Override protected void onKeyEvent(KeyEvent keyEvent) { /* Inject to Presentation? */ } }