Wejściowe pliki konfiguracji urządzenia

Pliki konfiguracji urządzeń wejściowych (pliki .idc) zawierają dane dotyczące konkretnego urządzenia właściwości konfiguracji wpływające na działanie urządzeń wejściowych.

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 pewność, że od razu będą 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ń zgłaszanych przez powiązane Sterownik urządzenia wejściowego jądra systemu Linux.

Jeśli na przykład urządzenie wejściowe obsługuje typ i kody zdarzenia EV_REL REL_X i REL_Y oraz typu zdarzenia EV_KEY i BTN_MOUSE, a Android sklasyfikuje urządzenie wejściowe jako mysz. Domyślne zachowanie dla myszy to pokazanie na ekranie kursora, który śledzi ruchy kursora myszy i symuluje dotknięcia po kliknięciu myszy. 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, wielodotyk Ekrany dotykowe i touchpady obsługują typ i kody zdarzenia EV_ABS ABS_MT_POSITION_X i ABS_MT_POSITION_Y co najmniej. Zamierzony cel wykorzystanie tych urządzeń jest bardzo zróżnicowane 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ądzeń wejściowych pochodzą od dostawcy, produktu (i (opcjonalnie) identyfikatora wersji) lub według nazwy urządzenia wejściowego.

Podane niżej ścieżki są brane pod uwagę w odpowiedniej kolejności.

  • /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
  • /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
  • /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 składający się z właściwości projekty 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ą zawierać: odstępu. 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ć odstępów ani znaków zarezerwowanych \ lub ".

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

Komentarze

Wiersze komentarza zaczynają się od znaku „#” i kontynuuj 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

Poniższa właściwość jest wspólna dla wszystkich klas urządzeń wejściowych.

Zapoznaj się z dokumentacją poszczególnych klas urządzeń wejściowych, aby znaleźć informacje na temat funkcji właściwości specjalnych używanych przez poszczególne 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. Ten zapobiega nieumyślnemu wybudzeniu telefonu przez naciśnięcia i dotknięcia klawiszy gdy masz ją w kieszeni. Zazwyczaj zdefiniowanych jest tylko kilka kluczy wybudzania.

Z kolei zewnętrzne urządzenia wejściowe zwykle wybudzają urządzenie bardziej intensywnie, są wyłączone lub nie podłączone podczas transportu. Przykład: Naciśnięcie dowolnego klawisza na klawiaturze zewnętrznej to dobry znak, że użytkownik chce urządzenie, aby je wybudzić i zareagować.

Ważne jest, aby mieć ustawioną wartość właściwości device.internal. dla wszystkich wewnętrznych urządzeń wejściowych.

Weryfikacja

Pamiętaj, aby zweryfikować wejściowe pliki konfiguracji urządzenia za pomocą Narzędzie Weryfikuj mapy klawiszy.