Giriş cihazı yapılandırma dosyaları

Giriş cihazı yapılandırma dosyaları (.idc dosyaları), giriş cihazlarının davranışını etkileyen cihaza özgü yapılandırma özelliklerini içerir.

Varsayılan sistem davranışı genellikle bu cihazların kutudan çıkar çıkmaz çalışacağından, HID klavye ve fare gibi standart çevre birimleri için giriş cihazı yapılandırma dosyaları genellikle gerekli değildir. Öte yandan, özellikle dokunmatik ekranlar olmak üzere yerleşik gömülü cihazların davranışlarını belirtmek için neredeyse her zaman giriş cihazı yapılandırma dosyalarına ihtiyaç duyulur.

Gerekçe

Android, ilişkili Linux çekirdek giriş cihazı sürücüsü tarafından raporlanan etkinlik türlerine ve özelliklerine göre çoğu giriş cihazı özelliğini otomatik olarak algılar ve yapılandırır.

Örneğin, bir giriş cihazı EV_REL etkinlik türünü ve REL_X ile REL_Y kodlarının yanı sıra EV_KEY etkinlik türünü ve BTN_MOUSE kodlarını destekliyorsa Android, giriş cihazını fare olarak sınıflandırır. Farenin varsayılan davranışı, farenin hareketlerini izleyen ve fare tıklandığında dokunmaları simüle eden ekran imleci sunmaktır. Fare farklı şekilde yapılandırılabilir ancak varsayılan davranış genellikle standart fare çevre birimleri için yeterlidir.

Bazı giriş cihazı sınıfları daha belirsizdir. Örneğin, çoklu dokunmatik ekranlar ve dokunmatik alanlar hem EV_ABS etkinlik türünü hem de en azından ABS_MT_POSITION_X ve ABS_MT_POSITION_Y kodlarını destekler. Ancak bu cihazların amaçlanan kullanımları oldukça farklıdır ve her zaman otomatik olarak belirlenemez. Ayrıca, dokunmatik cihazlar tarafından raporlanan basınç ve boyut bilgilerini anlamlandırmak için ek bilgiler gerekir. Bu nedenle, dokunmatik cihazların (özellikle yerleşik dokunmatik ekranların) genellikle IDC dosyalarına ihtiyacı vardır.

Konum

Giriş cihazı yapılandırma dosyaları, USB tedarikçisine, ürüne (ve isteğe bağlı olarak sürüme) veya giriş cihazı adına göre bulunur.

Aşağıdaki yollar sırayla kontrol edilir.

  • /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

Cihaz adını içeren bir dosya yolu oluşturulurken cihaz adındaki "0"-"9", "a"-"z", "A"-"Z", "-" veya "_" dışındaki tüm karakterler "_" ile değiştirilir.

Sözdizimi

Giriş cihazı yapılandırma dosyası, mülk atamaları ve yorumlardan oluşan bir düz metin dosyasıdır.

Özellikler

Mülk atamalarının her biri bir mülk adı, =, mülk değeri ve yeni bir satırdan oluşur. Örneğin:

property = value

Mülk adları, boş olmayan değişmez metin tanımlayıcılardır. Boşluk içermemelidir. Giriş sisteminin her bileşeni, işlevini yapılandırmak için kullanılan bir dizi özellik tanımlar.

Mülk değerleri, boş olmayan dize değişmezleri, tam sayılar veya kayan noktalı sayılardır. Boşluk veya ayrılmış karakterler \ ya da " içermemelidir.

Mülk adları ve değerleri büyük/küçük harfe duyarlıdır.

Yorumlar

Yorum satırları "#" ile başlar ve satırın sonuna kadar devam eder. Örneğin:

# A comment!

Boş satırlar yoksayılır.

Örnek

# 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...

Yaygın özellikler

Aşağıdaki özellik tüm giriş cihazı sınıfları için ortaktır.

Her sınıfın kullandığı özel özellikler hakkında bilgi edinmek için her giriş cihazı sınıfının belgelerine bakın.

device.internal

Tanım: device.internal = 0 | 1

Giriş cihazının harici olarak bağlı (muhtemelen çıkarılabilir) bir çevre birimi yerine dahili bir bileşen olup olmadığını belirtir.

  • Değer 0 ise cihaz haricidir.

  • Değer 1 ise cihaz dahilidir.

  • Değer belirtilmezse varsayılan değer, USB (BUS_USB) veya Bluetooth (BUS_BLUETOOTH) veriyolundaki tüm cihazlar için 0, aksi takdirde 1 olur.

Bu özellik, uyanma etkinlikleriyle ilgili varsayılan politika kararlarını belirler.

Dahili giriş cihazları, anahtar düzeni dosyasında veya kodlanmış bir politika kuralında açıkça yapılandırılmadığı sürece ekranı uyku modundan uyandırmaz. Bu ayrım, anahtarlara basılması ve dokunma işlemlerinin, cebinize yerleştirilmiş durumdayken telefonunuzu yanlışlıkla uyandırmasını önler. Genellikle yalnızca birkaç uyanma anahtarı tanımlanır.

Buna karşılık, harici giriş cihazları genellikle cihazı daha agresif bir şekilde uyandırır. Bunun nedeni, bu cihazların taşıma sırasında kapalı veya takılı olmadığı varsaymasıdır. Örneğin, harici bir klavyede herhangi bir tuşa basılması, kullanıcının cihazın uyanıp yanıt vermesini istediğinin iyi bir göstergesidir.

device.internal mülkünün değerinin tüm dahili giriş cihazları için doğru şekilde ayarlandığından emin olmak önemlidir.

Doğrulama

Tuş Haritalarını Doğrula aracını kullanarak giriş cihazı yapılandırma dosyalarınızı doğruladığınızdan emin olun.