קובצי תצורה של התקני קלט

קובצי תצורה של התקני קלט (קבצי .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 מוגדר בצורה נכונה לכל התקני הקלט הפנימיים.

אימות

חשוב לאמת את קובצי התצורה של מכשיר הקלט באמצעות הכלי Validate Keymaps.