Saisie au clavier

En fonction de la propriété HAL du véhicule VEHICLE_PROPERTY_HW_KEY_INPUT, définie dans hardware/libhardware/include/hardware/vehicle.h, Android Automotive gère la saisie de touches à partir d'éléments tels que les boutons de la télécommande du volant, les boutons physiques et les panneaux tactiles.

Par exemple, distribution d'un événement clé sur un réseau CAN:

Événement clé

Figure 1. Événements clés Android Automotive sur le flux CANbus.

Données d'événement clé

Les données suivantes sont associées à chaque événement clé dans le HAL du véhicule:

  • Action d'entrée (haut/bas):
    VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0,
    VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
  • Code de clé mappé sur les touches Android dans une implémentation partenaire du HAL du véhicule.
  • Écran cible (cluster principal/d'instruments):
    VEHICLE_DISPLAY_MAIN               = 0,
    VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,

La gestion des entrées de clé dans le combiné d'instruments utilise CarInputService (le même service est utilisé pour la gestion des entrées régulières dans le véhicule). Les événements de touche sont propagés vers InstrumentClusterRenderingService:

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