Masukkan file konfigurasi perangkat

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 perangkat tersebut akan berfungsi secara otomatis. Di sisi lain, perangkat tersemat bawaan, terutama layar sentuh, hampir selalu memerlukan file konfigurasi perangkat input untuk menentukan perilakunya.

Argumentasi

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

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

Kelas perangkat input tertentu lebih ambigu. Misalnya, multi-sentuh layar sentuh dan touchpad mendukung kode dan jenis peristiwa EV_ABS Minimum ABS_MT_POSITION_X dan ABS_MT_POSITION_Y. Namun, penggunaan perangkat ini yang dimaksudkan 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 memerlukan file IDC.

Lokasi

File konfigurasi perangkat input terletak berdasarkan vendor USB, ID produk (dan versi opsional) atau berdasarkan nama perangkat input.

Jalur berikut akan dikonsultasikan secara berurutan.

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

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

Sintaksis

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

Properti

Setiap penetapan properti terdiri dari nama properti, =, nilai properti, dan baris baru. Seperti ini:

property = value

Nama properti adalah ID teks literal yang tidak kosong. Tidak boleh berisi spasi kosong. Setiap komponen sistem input menentukan kumpulan properti yang digunakan untuk mengonfigurasi fungsinya.

Nilai properti adalah literal string, bilangan bulat, atau bilangan floating point yang tidak kosong. Nama tidak boleh berisi spasi kosong atau karakter yang dicadangkan \ atau ".

Nama dan nilai properti peka huruf besar/kecil.

Komentar

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

# A comment!

Baris kosong akan 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 umum untuk semua class perangkat input.

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

device.internal

Definisi: device.internal = 0 | 1

Menentukan apakah perangkat input merupakan komponen bawaan internal, bukan komponen periferal yang terpasang secara eksternal (kemungkinan besar dapat dilepas).

  • Jika nilainya 0, berarti perangkat bersifat eksternal.

  • Jika nilainya 1, berarti perangkat merupakan internal.

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

Properti ini menentukan keputusan kebijakan default terkait peristiwa bangun.

Perangkat input internal umumnya tidak mengaktifkan layar dari mode tidur kecuali jika dikonfigurasi secara eksplisit untuk melakukannya dalam file tata letak kunci atau dalam aturan kebijakan hardcode. Ini mencegah penekanan tombol dan sentuhan membangunkan ponsel secara tidak sah saat berada di saku Anda. Biasanya hanya ada beberapa kecil tombol bangun yang ditentukan.

Sebaliknya, perangkat input eksternal biasanya membangunkan perangkat lebih agresif karena dianggap dimatikan atau tidak dicolokkan selama pengiriman. Misalnya, menekan tombol apa pun pada {i>keyboard<i} eksternal adalah indikator yang baik bahwa pengguna menginginkan perangkat untuk bangun dan merespons.

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

Validasi

Pastikan untuk memvalidasi file konfigurasi perangkat input menggunakan alat Validasi Peta Tombol.