Klawisze wejściowe

Na podstawie właściwości HAL pojazdu VEHICLE_PROPERTY_HW_KEY_INPUT, zdefiniowanej w hardware/libhardware/include/hardware/vehicle.h, Android Automotive obsługuje kluczowe dane za pomocą elementów takich jak przełączniki zdalne, przyciski sprzętowe i panele dotykowe.

Na przykład wysłanie kluczowego zdarzenia przez sieć magistrali CAN:

Kluczowe zdarzenie

Rysunek 1. Kluczowe zdarzenia w Androidzie Automotive w ramach procesu CANbus.

Dane kluczowego zdarzenia

Do każdego kluczowego zdarzenia w HAL pojazdu są dołączane te dane:

  • Działanie wprowadzania (w górę/w dół):
    VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0,
    VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
  • Kod klucza zmapowany na klucze Androida w partnerskiej implementacji kodu HAL pojazdu.
  • Docelowy wyświetlacz (główny/klaster instrumentów):
    VEHICLE_DISPLAY_MAIN               = 0,
    VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,

Do obsługi danych wejściowych klucza w klastrze przyrządów jest używana funkcja CarInputService (to samo jest używany do regularnego obsługi danych wejściowych w pojeździe). Kluczowe zdarzenia są przekazywane do InstrumentClusterRenderingService:

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