تحتوي ملفات إعدادات أجهزة الإدخال (ملفات .idc
) على سمات إعدادات متعلقة بالجهاز تؤثر في سلوك أجهزة الإدخال.
لا تكون ملفات ضبط أجهزة الإدخال ضرورية عادةً لأجهزة الكمبيوتر الملحقة المعروفة، مثل لوحات مفاتيح HID وأجهزة الماوس، لأنّ سلوك النظام التلقائي يضمن عادةً أن تعمل هذه الأجهزة على الفور. من ناحية أخرى، تتطلّب الأجهزة المضمّنة المدمجة، خاصةً الشاشات التي تعمل باللمس، تقريبًا دائمًا ملفات ضبط أجهزة الإدخال لتحديد سلوكها.
الأسباب
يرصد نظام Android تلقائيًا معظم إمكانات أجهزة الإدخال ويضبطها استنادًا إلى أنواع الأحداث وخصائصها التي يبلِغ عنها ملف التمهيد المرتبط لجهاز الإدخال في نواة Linux.
على سبيل المثال، إذا كان جهاز الإدخال متوافقًا مع نوع الحدث EV_REL
والرموز
REL_X
وREL_Y
بالإضافة إلى نوع الحدث EV_KEY
والرموز
BTN_MOUSE
،
سيصنِّف نظام التشغيل Android جهاز الإدخال على أنّه فأرة. السلوك التلقائي
للماوس هو عرض مؤشر على الشاشة يتتبّع حركات الماوس ويُحاكي اللمسات عند النقر على الماوس. على الرغم من أنّه يمكن
ضبط الماوس بشكلٍ مختلف، يكون السلوك التلقائي عادةً كافيًا
للأجهزة الملحقة العادية للماوس.
هناك فئات معيّنة من أجهزة الإدخال أكثر غموضًا. على سبيل المثال، تتوافق الشاشات التي تعمل باللمس المتعدّد
واللوحات التي تعمل باللمس مع نوع الحدث EV_ABS
والرموز
ABS_MT_POSITION_X
وABS_MT_POSITION_Y
على الأقل. ومع ذلك، فإنّ استخدامات هذه الأجهزة المقصودة مختلفة تمامًا ولا يمكن تحديدها
تلقائيًا في بعض الأحيان. بالإضافة إلى ذلك، هناك حاجة إلى معلومات إضافية لفهم
معلومات الضغط والحجم التي تُبلغ عنها الأجهزة التي تعمل باللمس. وبالتالي، تحتاج الأجهزة التي تعمل باللمس،
وخاصة الشاشات المدمجة التي تعمل باللمس، عادةً إلى ملفات IDC.
الموقع الجغرافي
يمكن العثور على ملفات ضبط جهاز الإدخال حسب مورد USB أو معرّف المنتج (و الإصدار اختياريًا) أو حسب اسم جهاز الإدخال.
يتم الرجوع إلى المسارات التالية بالترتيب.
/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
عند إنشاء مسار ملف يحتوي على اسم الجهاز، يتم استبدال جميع الأحرف في اسم الجهاز بحرف "_" باستثناء الأحرف من "0" إلى "9" أو من "a" إلى "z" أو من "A" إلى "Z" أو "-" أو "_".
بناء الجملة
ملف ضبط جهاز الإدخال هو ملف نصي عادي يتألف من عمليات تحديد السمات والتعليقات.
الخصائص
تتكوّن عمليات منح السمات من اسم سمة و=
وقيمة سمة
وسطر جديد. على النحو التالي:
property = value
أسماء السمات هي معرّفات نصية حرفية غير فارغة. يجب ألا تحتوي على مسافات. يحدّد كل مكوّن من مكوّنات نظام الإدخال مجموعة من السمات التي يتم استخدامها لضبط وظيفته.
قيم السمات هي سلاسل حرفية غير فارغة أو أعداد صحيحة أو أعداد نقطية عائمة.
يجب ألّا تحتوي على مسافات بيضاء أو الأحرف المحجوزة \
أو "
.
تكون أسماء السمات وقيمها حسّاسة لحالة الأحرف.
التعليقات
تبدأ أسطر التعليق بعلامة الهاشتاغ (#) وتستمر إلى نهاية السطر. على النحو التالي:
# A comment!
يتم تجاهل السطور الفارغة.
مثال
# 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...
الخصائص الشائعة
السمة التالية مشتركة بين جميع فئات أجهزة الإدخال.
يمكنك الرجوع إلى مستندات كل فئة من فئات أجهزة الإدخال للحصول على معلومات حول السمات الخاصة التي تستخدمها كل فئة.
device.internal
التعريف: device.internal
= 0
| 1
يحدِّد ما إذا كان جهاز الإدخال مكوّنًا داخليًا مدمجًا بدلاً من جهاز محيطي مُرفق خارجيًا (يُحتمل أن يكون قابلاً للإزالة).
-
إذا كانت القيمة
0
، يعني ذلك أنّ الجهاز خارجي. -
إذا كانت القيمة هي
1
، يعني ذلك أنّ الجهاز داخلي. -
في حال عدم تحديد القيمة، تكون القيمة التلقائية هي
0
لجميع الأجهزة على بوتيرة USB (BUS_USB) أو Bluetooth (BUS_BLUETOOTH)، و1
في غير ذلك.
تحدِّد هذه السمة القرارات التلقائية للسياسة في ما يتعلّق بأحداث الاستيقاظ.
لا تُوقِظ أجهزة الإدخال الداخلية الشاشة من وضع السكون بشكل عام ما لم يتم ضبطها بشكل صريح للقيام بذلك في ملف تنسيق المفاتيح أو في قاعدة سياسة مُبرمَجة بشكلٍ ثابت. ويمنع هذاالتمييز بين الضغط على المفاتيح واللمس من تنشيط هاتفك بشكل غير مقصود عندما يكون في جيبك. عادةً ما يتم تحديد عدد قليل من مفاتيح التفعيل.
في المقابل، عادةً ما تُوقِظ أجهزة الإدخال الخارجية الجهاز بشكل أكثر فاعلية لأنّه يُفترض أنّها تكون متوقفة أو غير متصلة بالطاقة أثناء النقل. على سبيل المثال، يشير الضغط على أي مفتاح في لوحة مفاتيح خارجية إلى أنّ المستخدم يريد تنشيط الجهاز والاستجابة له.
من المهم التأكّد من ضبط قيمة السمة device.internal
بشكل صحيح لجميع أجهزة الإدخال الداخلية.
التحقُّق
احرص على التحقّق من صحة ملفات إعدادات جهاز الإدخال باستخدام أداة التحقّق من صحة خرائط المفاتيح.