อินพุตไฟล์การกำหนดค่าอุปกรณ์

อินพุตไฟล์การกำหนดค่าอุปกรณ์ (.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, ผลิตภัณฑ์ (และ (ไม่บังคับ)) รหัสหรือป้อนชื่ออุปกรณ์

ระบบจะพิจารณาเส้นทางต่อไปนี้ตามลำดับ

  • /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) หรือบลูทูธ (BUS_BLUETOOTH) 1 ไม่เช่นนั้น

พร็อพเพอร์ตี้นี้จะกำหนดการตัดสินใจด้านนโยบายเริ่มต้นเกี่ยวกับกิจกรรมการปลุกระบบ

โดยทั่วไปอุปกรณ์อินพุตภายในจะไม่ปลุกจอแสดงผลจากโหมดสลีปเว้นแต่ มีการกำหนดค่าให้ทำเช่นนั้นในไฟล์เลย์เอาต์คีย์หรือในกฎนโยบายแบบฮาร์ดโค้ด ช่วงเวลานี้ ความแตกต่างช่วยป้องกันการกดแป้นและแตะเพื่อไม่ให้โทรศัพท์ปลุกขึ้นมาจริงๆ เมื่ออยู่ในกระเป๋า ปกติแล้วจะมีแป้นปลุกระบบอยู่ไม่กี่แป้นเท่านั้น

ในทางกลับกัน อุปกรณ์อินพุตภายนอกมักจะปลุกระบบให้สั่นมากกว่าเพราะ โดยจะถือว่าเป็นการปิดหรือไม่ได้เสียบปลั๊กระหว่างการขนส่ง ตัวอย่างเช่น การกดแป้นใดๆ บนแป้นพิมพ์ภายนอกเป็นตัวบ่งชี้ที่ดีว่าผู้ใช้ต้องการ เพื่อปลุกระบบและตอบสนอง

คุณต้องตรวจสอบว่าได้ตั้งค่าของพร็อพเพอร์ตี้ device.internal แล้ว สำหรับอุปกรณ์อินพุตภายในทั้งหมดอย่างถูกต้อง

การตรวจสอบความถูกต้อง

โปรดตรวจสอบไฟล์การกำหนดค่าอุปกรณ์อินพุตโดยใช้ เครื่องมือตรวจสอบคีย์แมป