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