Wejściowe pliki konfiguracji urządzenia

Pliki konfiguracji urządzeń wejściowych (pliki .idc) zawierają właściwości konfiguracji specyficzne dla urządzenia, które wpływają na jego działanie.

Wejściowe pliki konfiguracji urządzeń zwykle nie są potrzebne w przypadku urządzeń peryferyjnych, takich jak klawiatury i myszy HID, ponieważ domyślne działanie systemu daje gwarancję, że będą od razu gotowe do pracy. Z drugiej strony, wbudowane urządzenia, zwłaszcza ekrany dotykowe, niemal zawsze wymagają plików konfiguracji urządzeń, aby określić ich działanie.

Uzasadnienie

Android automatycznie wykrywa i konfiguruje większość możliwości urządzeń wejściowych na podstawie typów i właściwości zdarzeń raportowanych przez powiązane Sterownik urządzenia wejściowego jądra systemu Linux.

Jeśli na przykład urządzenie wejściowe obsługuje typ zdarzenia EV_REL i kody REL_X oraz REL_Y, a także typ zdarzenia EV_KEY i kod BTN_MOUSE, Android sklasyfikuje je jako mysz. Domyślne działanie myszy polega na wyświetlaniu kursora na ekranie, który śledzi ruchy myszy i symuluje dotknięcia po kliknięciu myszą. Chociaż mysz może skonfigurowane w inny sposób, domyślne zachowanie jest zwykle wystarczające ze standardowymi urządzeniami peryferyjnymi myszki.

Niektóre klasy urządzeń wejściowych są bardziej niejednoznaczne. Na przykład ekrany dotykowe i touchpady obsługują co najmniej typ zdarzenia EV_ABS oraz kody ABS_MT_POSITION_XABS_MT_POSITION_Y. Jednak przeznaczenie tych urządzeń jest zupełnie inne i nie zawsze można je określić automatycznie. Potrzebne będą także dodatkowe informacje, które pozwolą zrozumieć informacje o ciśnieniu i rozmiarze przekazywane przez urządzenia dotykowe. Dlatego urządzenia dotykowe zwłaszcza wbudowane ekrany dotykowe, zwykle wymagają plików IDC.

Lokalizacja

Pliki konfiguracji urządzenia wejściowego są zlokalizowane według identyfikatora dostawcy USB, identyfikatora produktu (i opcjonalnie wersji) lub nazwy urządzenia wejściowego.

Poniższe ścieżki są sprawdzane kolejno.

  • /product/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /system_ext/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /odm/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /vendor/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /system/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /data/system/devices/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /product/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /system_ext/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /odm/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /vendor/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /system/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /data/system/devices/idc/Vendor_XXXX_Product_XXXX.idc
  • /product/usr/idc/device-name.idc
  • /system_ext/usr/idc/device-name.idc
  • /odm/usr/idc/device-name.idc
  • /vendor/usr/idc/device-name.idc
  • /system/usr/idc/device-name.idc
  • /data/system/devices/idc/device-name.idc

Przy tworzeniu ścieżki pliku zawierającej nazwę urządzenia wszystkie znaki w nazwie urządzenia innej niż „0”–9, „a”–„z”, „A”–„Z” i „-” lub „_” są zastąpione znakiem „_”.

Składnia

Plik konfiguracji urządzenia wejściowego to zwykły plik tekstowy zawierający przypisania właściwości i komentarze.

Właściwości

Każde przypisania właściwości składa się z nazwy właściwości, =, wartości właściwości, i nowy wiersz. W ten sposób:

property = value

Nazwy właściwości nie mogą być puste, a dosłowne identyfikatory tekstowe nie mogą być puste. Nie mogą one zawierać spacji. Każdy składnik systemu danych wejściowych definiuje zbiór właściwości które służą do konfigurowania jego funkcji.

Wartości właściwości to niepuste literały ciągu znaków, liczby całkowite lub liczby zmiennoprzecinkowe. Nie mogą zawierać spacji ani znaków \ ani ".

W nazwach i wartościach właściwości rozróżniana jest wielkość liter.

Komentarze

Wiersze komentarzy zaczynają się od znaku „#” i trwają do końca wiersza. W ten sposób:

# A comment!

Puste wiersze są ignorowane.

Przykład

# This is an example of an input device configuration file.
# It might be used to describe the characteristics of a built-in touch screen.

# This is an internal device, not an external peripheral attached to the USB
# or Bluetooth bus.
device.internal = 1

# The device should behave as a touch screen, which uses the same orientation
# as the built-in display.
touch.deviceType = touchScreen
touch.orientationAware = 1

# Additional calibration properties...
# etc...

Właściwości wspólne

Właściwość ta jest wspólna dla wszystkich klas urządzeń wejściowych.

Informacje o właściwościach specjalnych używanych przez poszczególne klasy urządzeń wejściowych znajdziesz w dokumentacji dotyczącej każdej klasy.

device.internal

Definicja: device.internal = 0 | 1

Określa, czy urządzenie wejściowe jest wbudowanym komponentem, a nie podłączonego zewnętrznie (prawdopodobnie odłączanego) urządzenia peryferyjnego.

  • Jeśli wartość to 0, urządzenie jest zewnętrzne.

  • Jeśli wartość to 1, urządzenie jest wewnętrzne.

  • Jeśli wartość nie zostanie określona, domyślną wartością będzie 0 dla wszystkich urządzeń Magistrala USB (BUS_USB) lub Bluetooth (BUS_BLUETOOTH) (inaczej 1).

Ta właściwość określa domyślne decyzje dotyczące zasad dotyczące zdarzeń wybudzania.

Wewnętrzne urządzenia wejściowe zwykle nie wybudzają ekranu ze stanu uśpienia, chyba że wyraźnie w pliku układu klucza lub w regule zasady zakodowanej na stałe. To rozróżnianie zapobiega przypadkowemu wybudzaniu telefonu przez naciśnięcia i dotknięcia, gdy jest on w kieszeni. Zwykle zdefiniowanych jest tylko kilka kluczy aktywacji.

Z drugiej strony zewnętrzne urządzenia wejściowe zwykle wybudzają urządzenie bardziej agresywnie, ponieważ zakłada się, że są wyłączone lub nie są podłączone podczas transportu. Na przykład naciśnięcie dowolnego klawisza na zewnętrznej klawiaturze jest dobrym wskaźnikiem tego, że użytkownik chce, aby urządzenie się obudziło i zareagowało.

Ważne jest, aby wartość właściwości device.internal była prawidłowo ustawiona na wszystkich wewnętrznych urządzeniach wejściowych.

Weryfikacja

Pamiętaj, aby zweryfikować pliki konfiguracji urządzenia wejściowego za pomocą narzędzia Sprawdzanie map klawiszy.