File Konfigurasi Perangkat Input

File konfigurasi perangkat input (file .idc ) berisi properti konfigurasi khusus perangkat yang memengaruhi perilaku perangkat input.

File konfigurasi perangkat input biasanya tidak diperlukan untuk periferal standar seperti keyboard dan mouse HID karena perilaku sistem default biasanya memastikan bahwa mereka akan bekerja di luar kotak. Di sisi lain, perangkat tertanam built-in, terutama layar sentuh, hampir selalu memerlukan file konfigurasi perangkat input untuk menentukan perilakunya.

Alasan

Android secara otomatis mendeteksi dan mengonfigurasi sebagian besar kemampuan perangkat input berdasarkan jenis peristiwa dan properti yang dilaporkan oleh driver perangkat input kernel Linux terkait.

Misalnya, jika perangkat input mendukung jenis dan kode peristiwa EV_REL REL_X dan REL_Y serta jenis peristiwa EV_KEY dan BTN_MOUSE , maka Android akan mengklasifikasikan perangkat masukan sebagai mouse. Perilaku default untuk mouse adalah menampilkan kursor di layar yang melacak gerakan mouse dan mensimulasikan sentuhan saat mouse diklik. Meskipun mouse dapat dikonfigurasi secara berbeda, perilaku default biasanya cukup untuk periferal mouse standar.

Kelas perangkat input tertentu lebih ambigu. Misalnya, layar sentuh multi-sentuh dan bantalan sentuh keduanya mendukung jenis dan kode peristiwa EV_ABS minimal ABS_MT_POSITION_X dan ABS_MT_POSITION_Y . Namun, tujuan penggunaan perangkat ini sangat berbeda dan tidak selalu dapat ditentukan secara otomatis. Selain itu, informasi tambahan diperlukan untuk memahami informasi tekanan dan ukuran yang dilaporkan oleh perangkat sentuh. Oleh karena itu perangkat sentuh, terutama layar sentuh bawaan, biasanya membutuhkan file IDC.

Lokasi

File konfigurasi perangkat input ditempatkan oleh vendor USB, id produk (dan versi opsional) atau dengan nama perangkat input.

Jalur berikut dikonsultasikan secara berurutan.

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

Saat membuat jalur file yang berisi nama perangkat, semua karakter dalam nama perangkat selain '0'-'9', 'a'-'z', 'A'-'Z', '-' atau '_' diganti dengan '_'.

Sintaksis

File konfigurasi perangkat input adalah file teks biasa yang terdiri dari penetapan properti dan komentar.

Properti

Penugasan properti masing-masing terdiri dari nama properti, an = , nilai properti, dan baris baru. Seperti ini:

property = value

Nama properti adalah pengidentifikasi teks literal yang tidak kosong. Mereka tidak boleh mengandung spasi. Setiap komponen dari sistem input mendefinisikan satu set properti yang digunakan untuk mengkonfigurasi fungsinya.

Nilai properti tidak kosong string literal, bilangan bulat atau angka floating point. Mereka tidak boleh mengandung spasi putih atau karakter yang dicadangkan \ atau " .

Nama dan nilai properti peka terhadap huruf besar/kecil.

Komentar

Baris komentar dimulai dengan '#' dan berlanjut ke akhir baris. Seperti ini:

# A comment!

Garis kosong diabaikan.

Contoh

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

Properti umum

Properti berikut ini umum untuk semua kelas perangkat input.

Lihat dokumentasi setiap kelas perangkat input untuk informasi tentang properti khusus yang digunakan oleh setiap kelas.

device.internal

Definisi: device.internal = 0 | 1

Menentukan apakah perangkat input adalah komponen internal internal yang bertentangan dengan periferal yang terpasang secara eksternal (kemungkinan besar dapat dilepas).

  • Jika nilainya 0 , perangkat tersebut eksternal.

  • Jika nilainya 1 , perangkat tersebut internal.

  • Jika nilai tidak ditentukan, nilai default adalah 0 untuk semua perangkat di bus USB (BUS_USB) atau Bluetooth (BUS_BLUETOOTH), 1 sebaliknya.

Properti ini menentukan keputusan kebijakan default terkait peristiwa bangun.

Perangkat input internal umumnya tidak membangunkan tampilan dari mode tidur kecuali jika dikonfigurasi secara eksplisit untuk melakukannya dalam file tata letak kunci atau dalam aturan kebijakan hardcoded. Perbedaan ini mencegah penekanan tombol dan sentuhan dari membangunkan ponsel Anda secara palsu saat berada di saku Anda. Biasanya hanya ada segelintir tombol bangun yang ditentukan.

Sebaliknya, perangkat input eksternal biasanya membangunkan perangkat lebih agresif karena dianggap dimatikan atau tidak dicolokkan selama pengangkutan. Misalnya, menekan sembarang tombol pada keyboard eksternal merupakan indikator yang baik bahwa pengguna ingin perangkat aktif dan merespons.

Penting untuk memastikan bahwa nilai properti device.internal diatur dengan benar untuk semua perangkat input internal.

Validasi

Pastikan untuk memvalidasi file konfigurasi perangkat input Anda menggunakan alat Validasi Keymaps .