इनपुट डिवाइस कॉन्फ़िगरेशन फ़ाइलें

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

इनपुट डिवाइस कॉन्फ़िगरेशन फ़ाइलें ( .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 को कम से कम सपोर्ट करते हैं। हालाँकि, इन उपकरणों के इच्छित उपयोग काफी भिन्न हैं और हमेशा स्वचालित रूप से निर्धारित नहीं किए जा सकते हैं। साथ ही, स्पर्श उपकरणों द्वारा रिपोर्ट किए गए दबाव और आकार की जानकारी को समझने के लिए अतिरिक्त जानकारी की आवश्यकता होती है। इसलिए टच डिवाइस, विशेष रूप से अंतर्निर्मित टच स्क्रीन, को आमतौर पर आईडीसी फाइलों की आवश्यकता होती है।

स्थान

इनपुट डिवाइस कॉन्फ़िगरेशन फ़ाइलें 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 है, तो डिवाइस आंतरिक है।

  • यदि मान निर्दिष्ट नहीं है, तो USB (BUS_USB) या ब्लूटूथ (BUS_BLUETOOTH) बस के सभी उपकरणों के लिए डिफ़ॉल्ट मान 0 है, अन्यथा 1

यह गुण सक्रिय घटनाओं के संबंध में डिफ़ॉल्ट नीति निर्णय निर्धारित करता है।

आंतरिक इनपुट डिवाइस आमतौर पर डिस्प्ले को स्लीप से नहीं जगाते हैं जब तक कि कुंजी लेआउट फ़ाइल या हार्डकोडेड पॉलिसी नियम में ऐसा करने के लिए स्पष्ट रूप से कॉन्फ़िगर नहीं किया जाता है। यह अंतर कुंजी प्रेस और स्पर्श को आपके फोन को आपकी जेब में रखने पर नकली रूप से जागने से रोकता है। आमतौर पर केवल कुछ मुट्ठी भर वेक कुंजियाँ परिभाषित की जाती हैं।

इसके विपरीत, बाहरी इनपुट डिवाइस आमतौर पर डिवाइस को अधिक आक्रामक तरीके से जगाते हैं क्योंकि उन्हें परिवहन के दौरान बंद या प्लग इन नहीं माना जाता है। उदाहरण के लिए, बाहरी कीबोर्ड पर किसी भी कुंजी को दबाना एक अच्छा संकेतक है कि उपयोगकर्ता चाहता है कि डिवाइस जाग जाए और प्रतिक्रिया दे।

यह सुनिश्चित करना महत्वपूर्ण है कि सभी आंतरिक इनपुट उपकरणों के लिए device.internal संपत्ति का मूल्य सही ढंग से सेट किया गया है।

मान्यकरण

Validate Keymaps टूल का उपयोग करके अपनी इनपुट डिवाइस कॉन्फ़िगरेशन फ़ाइलों को सत्यापित करना सुनिश्चित करें।