Wprowadź pliki konfiguracyjne urządzenia

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

Pliki konfiguracyjne urządzeń wejściowych zazwyczaj nie są potrzebne w przypadku standardowych urządzeń peryferyjnych, takich jak klawiatury i myszy HID, ponieważ domyślne zachowanie systemu zwykle gwarantuje, że będą one działać od razu po wyjęciu z pudełka. Z drugiej strony wbudowane urządzenia wbudowane, zwłaszcza ekrany dotykowe, prawie zawsze wymagają plików konfiguracyjnych urządzeń wejściowych, aby określić ich zachowanie.

Racjonalne uzasadnienie

System Android automatycznie wykrywa i konfiguruje większość możliwości urządzeń wejściowych na podstawie typów zdarzeń i właściwości zgłaszanych przez powiązany sterownik urządzenia wejściowego jądra Linuksa.

Na przykład, jeśli urządzenie wejściowe obsługuje typ zdarzenia EV_REL i kody REL_X i REL_Y , a także typ zdarzenia EV_KEY i BTN_MOUSE , to Android zaklasyfikuje urządzenie wejściowe jako mysz. Domyślnym zachowaniem myszy jest wyświetlanie kursora na ekranie, który śledzi ruchy myszy i symuluje dotknięcia po kliknięciu myszą. Chociaż mysz można skonfigurować inaczej, zachowanie domyślne jest zwykle wystarczające w przypadku standardowych urządzeń peryferyjnych myszy.

Niektóre klasy urządzeń wejściowych są bardziej niejednoznaczne. Na przykład wielodotykowe ekrany dotykowe i tabliczki dotykowe obsługują co najmniej typ zdarzenia EV_ABS i kody ABS_MT_POSITION_X i ABS_MT_POSITION_Y . Jednakże zamierzone zastosowania tych urządzeń są zupełnie inne i nie zawsze można je określić automatycznie. Ponadto potrzebne są dodatkowe informacje, aby zrozumieć informacje o ciśnieniu i rozmiarze zgłaszane przez urządzenia dotykowe. Dlatego urządzenia dotykowe, zwłaszcza wbudowane ekrany dotykowe, zwykle potrzebują plików IDC.

Lokalizacja

Pliki konfiguracyjne urządzeń wejściowych są lokalizowane według dostawcy USB, identyfikatora produktu (i opcjonalnie wersji) lub nazwy urządzenia wejściowego.

Poniższe ścieżki są sprawdzane w 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

Podczas konstruowania ścieżki pliku zawierającej nazwę urządzenia wszystkie znaki nazwy urządzenia inne niż „0”-„9”, „a”-„z”, „A”-„Z”, „-” lub „_” są zastępowane przez „_”.

Składnia

Plik konfiguracyjny urządzenia wejściowego to zwykły plik tekstowy składający się z przypisań właściwości i komentarzy.

Nieruchomości

Każde przypisanie właściwości składa się z nazwy właściwości, znaku = , wartości właściwości i nowego wiersza. Lubię to:

property = value

Nazwy właściwości są niepustymi identyfikatorami tekstowymi. Nie mogą zawierać białych znaków. Każdy komponent systemu wejściowego definiuje zestaw właściwości, które służą do konfigurowania jego funkcji.

Wartości właściwości to niepuste literały łańcuchowe, liczby całkowite lub liczby zmiennoprzecinkowe. Nie mogą zawierać białych znaków ani znaków zastrzeżonych \ lub " .

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

Uwagi

Linie komentarza zaczynają się od „#” i trwają do końca linii. Lubię to:

# A comment!

Puste linie 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...

Wspólne właściwości

Następująca właściwość jest wspólna dla wszystkich klas urządzeń wejściowych.

Informacje na temat specjalnych właściwości używanych przez każdą klasę można znaleźć w dokumentacji każdej klasy urządzeń wejściowych.

device.internal

Definicja: device.internal = 0 | 1

Określa, czy urządzenie wejściowe jest wbudowanym komponentem wewnętrznym, a nie zewnętrznym urządzeniem peryferyjnym (najprawdopodobniej wymiennym).

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

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

  • Jeśli wartość nie jest określona, ​​wartością domyślną jest 0 dla wszystkich urządzeń na magistrali USB (BUS_USB) lub Bluetooth (BUS_BLUETOOTH), w przeciwnym razie 1 .

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

Wewnętrzne urządzenia wejściowe zazwyczaj nie budzą wyświetlacza ze stanu uśpienia, chyba że zostało to wyraźnie skonfigurowane w pliku układu klawiszy lub w zakodowanej na stałe regule. To rozróżnienie zapobiega przypadkowemu wybudzeniu telefonu, gdy znajduje się on w kieszeni, naciśnięcia klawiszy i dotknięć. Zazwyczaj zdefiniowano tylko niewielką liczbę klawiszy wybudzania.

I odwrotnie, zewnętrzne urządzenia wejściowe zwykle budzą urządzenie bardziej agresywnie, ponieważ zakłada się, że są wyłączone lub niepodłączone podczas transportu. Na przykład naciśnięcie dowolnego klawisza na klawiaturze zewnętrznej jest dobrym sygnałem, że użytkownik chce, aby urządzenie się wybudziło i odpowiedziało.

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

Walidacja

Pamiętaj o sprawdzeniu poprawności plików konfiguracyjnych urządzenia wejściowego za pomocą narzędzia Sprawdź poprawność map klawiszy .

,

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

Pliki konfiguracyjne urządzeń wejściowych zazwyczaj nie są potrzebne w przypadku standardowych urządzeń peryferyjnych, takich jak klawiatury i myszy HID, ponieważ domyślne zachowanie systemu zwykle gwarantuje, że będą one działać od razu po wyjęciu z pudełka. Z drugiej strony wbudowane urządzenia wbudowane, zwłaszcza ekrany dotykowe, prawie zawsze wymagają plików konfiguracyjnych urządzeń wejściowych, aby określić ich zachowanie.

Racjonalne uzasadnienie

System Android automatycznie wykrywa i konfiguruje większość możliwości urządzeń wejściowych na podstawie typów zdarzeń i właściwości zgłaszanych przez powiązany sterownik urządzenia wejściowego jądra Linuksa.

Na przykład, jeśli urządzenie wejściowe obsługuje typ zdarzenia EV_REL i kody REL_X i REL_Y , a także typ zdarzenia EV_KEY i BTN_MOUSE , to Android zaklasyfikuje urządzenie wejściowe jako mysz. Domyślnym zachowaniem myszy jest wyświetlanie kursora na ekranie, który śledzi ruchy myszy i symuluje dotknięcia po kliknięciu myszą. Chociaż mysz można skonfigurować inaczej, zachowanie domyślne jest zwykle wystarczające w przypadku standardowych urządzeń peryferyjnych myszy.

Niektóre klasy urządzeń wejściowych są bardziej niejednoznaczne. Na przykład wielodotykowe ekrany dotykowe i tabliczki dotykowe obsługują co najmniej typ zdarzenia EV_ABS i kody ABS_MT_POSITION_X i ABS_MT_POSITION_Y . Jednakże zamierzone zastosowania tych urządzeń są zupełnie inne i nie zawsze można je określić automatycznie. Ponadto potrzebne są dodatkowe informacje, aby zrozumieć informacje o ciśnieniu i rozmiarze zgłaszane przez urządzenia dotykowe. Dlatego urządzenia dotykowe, zwłaszcza wbudowane ekrany dotykowe, zwykle potrzebują plików IDC.

Lokalizacja

Pliki konfiguracyjne urządzeń wejściowych są lokalizowane według dostawcy USB, identyfikatora produktu (i opcjonalnie wersji) lub nazwy urządzenia wejściowego.

Poniższe ścieżki są sprawdzane w 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

Podczas konstruowania ścieżki pliku zawierającej nazwę urządzenia wszystkie znaki nazwy urządzenia inne niż „0”-„9”, „a”-„z”, „A”-„Z”, „-” lub „_” są zastępowane przez „_”.

Składnia

Plik konfiguracyjny urządzenia wejściowego to zwykły plik tekstowy składający się z przypisań właściwości i komentarzy.

Nieruchomości

Każde przypisanie właściwości składa się z nazwy właściwości, znaku = , wartości właściwości i nowego wiersza. Lubię to:

property = value

Nazwy właściwości są niepustymi identyfikatorami tekstowymi. Nie mogą zawierać białych znaków. Każdy komponent systemu wejściowego definiuje zestaw właściwości, które służą do konfigurowania jego funkcji.

Wartości właściwości to niepuste literały łańcuchowe, liczby całkowite lub liczby zmiennoprzecinkowe. Nie mogą zawierać białych znaków ani znaków zastrzeżonych \ lub " .

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

Uwagi

Linie komentarza zaczynają się od „#” i trwają do końca linii. Lubię to:

# A comment!

Puste linie 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...

Wspólne właściwości

Następująca właściwość jest wspólna dla wszystkich klas urządzeń wejściowych.

Informacje na temat specjalnych właściwości używanych przez każdą klasę można znaleźć w dokumentacji każdej klasy urządzeń wejściowych.

device.internal

Definicja: device.internal = 0 | 1

Określa, czy urządzenie wejściowe jest wbudowanym komponentem wewnętrznym, a nie zewnętrznym urządzeniem peryferyjnym (najprawdopodobniej wymiennym).

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

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

  • Jeśli wartość nie jest określona, ​​wartością domyślną jest 0 dla wszystkich urządzeń na magistrali USB (BUS_USB) lub Bluetooth (BUS_BLUETOOTH), w przeciwnym razie 1 .

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

Wewnętrzne urządzenia wejściowe zazwyczaj nie budzą wyświetlacza ze stanu uśpienia, chyba że zostało to wyraźnie skonfigurowane w pliku układu klawiszy lub w zakodowanej na stałe regule. To rozróżnienie zapobiega przypadkowemu wybudzeniu telefonu, gdy znajduje się on w kieszeni, naciśnięcia klawiszy i dotknięć. Zazwyczaj zdefiniowano tylko niewielką liczbę klawiszy wybudzania.

I odwrotnie, zewnętrzne urządzenia wejściowe zwykle budzą urządzenie bardziej agresywnie, ponieważ zakłada się, że są wyłączone lub niepodłączone podczas transportu. Na przykład naciśnięcie dowolnego klawisza na klawiaturze zewnętrznej jest dobrym sygnałem, że użytkownik chce, aby urządzenie się wybudziło i odpowiedziało.

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

Walidacja

Pamiętaj o sprawdzeniu poprawności plików konfiguracyjnych urządzenia wejściowego za pomocą narzędzia Sprawdź poprawność map klawiszy .