ملفات تكوين جهاز الإدخال

تحتوي ملفات تكوين جهاز الإدخال (ملفات .idc ) على خصائص تكوين خاصة بالجهاز تؤثر على سلوك أجهزة الإدخال.

عادةً ما تكون ملفات تكوين جهاز الإدخال غير ضرورية للأجهزة الطرفية القياسية مثل لوحات مفاتيح HID والماوس لأن سلوك النظام الافتراضي يضمن عادةً أنها ستعمل خارج الصندوق. من ناحية أخرى ، تتطلب الأجهزة المدمجة ، لا سيما الشاشات التي تعمل باللمس ، دائمًا تقريبًا ملفات تكوين جهاز الإدخال لتحديد سلوكها.

المنطق

يقوم Android تلقائيًا باكتشاف وتكوين معظم إمكانات جهاز الإدخال استنادًا إلى أنواع الأحداث والخصائص التي يتم الإبلاغ عنها بواسطة برنامج تشغيل جهاز إدخال Linux kernel المرتبط.

على سبيل المثال ، إذا كان جهاز الإدخال يدعم نوع الحدث EV_REL والرموز REL_X و REL_Y بالإضافة إلى نوع الحدث EV_KEY و BTN_MOUSE ، فسيقوم Android بتصنيف جهاز الإدخال على أنه ماوس. يتمثل السلوك الافتراضي للماوس في تقديم مؤشر على الشاشة يتتبع حركات الماوس ويحاكي اللمسات عند النقر فوق الماوس. على الرغم من إمكانية تكوين الماوس بشكل مختلف ، إلا أن السلوك الافتراضي عادةً ما يكون كافياً للأجهزة الطرفية القياسية للماوس.

فئات معينة من أجهزة الإدخال أكثر غموضًا. على سبيل المثال ، تدعم كل من الشاشات متعددة اللمس ولوحات اللمس نوع الحدث EV_ABS والرموز ABS_MT_POSITION_X و ABS_MT_POSITION_Y كحد أدنى. ومع ذلك ، فإن الاستخدامات المقصودة لهذه الأجهزة مختلفة تمامًا ولا يمكن دائمًا تحديدها تلقائيًا. أيضًا ، هناك حاجة إلى معلومات إضافية لفهم معلومات الضغط والحجم التي تم الإبلاغ عنها بواسطة أجهزة اللمس. ومن ثم فإن الأجهزة التي تعمل باللمس ، وخاصة الشاشات المدمجة التي تعمل باللمس ، تحتاج عادةً إلى ملفات IDC.

موقع

توجد ملفات تكوين جهاز الإدخال بواسطة بائع USB ومعرف المنتج (والإصدار اختياريًا) أو حسب اسم جهاز الإدخال.

يتم استشارة المسارات التالية بالترتيب.

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

عند إنشاء مسار ملف يحتوي على اسم الجهاز ، فإن جميع الأحرف في اسم الجهاز بخلاف "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 بشكل صحيح لجميع أجهزة الإدخال الداخلية.

تصديق

تأكد من التحقق من صحة ملفات تكوين جهاز الإدخال باستخدام أداة Validate Keymaps .