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

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

تصديق

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

,

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

تصديق

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