मुख्य वर्ण वाली मैप फ़ाइलें

मुख्य वर्ण वाली मैप फ़ाइलें (.kcm फ़ाइलें), कॉम्बिनेशन को मैप करने के लिए ज़िम्मेदार हैं .

डिवाइस के हिसाब से बनी कुंजी की लेआउट फ़ाइलें, सभी अंदरूनी (पहले से मौजूद) के लिए ज़रूरी हैं ऐसे इनपुट डिवाइस जिनमें कुंजियां होती हैं, अगर केवल सिस्टम को यह बताना हो कि डिवाइस केवल विशेष उद्देश्य के लिए है (पूर्ण कीबोर्ड नहीं).

बाहरी कीबोर्ड के लिए, खास तौर पर डिवाइस के हिसाब से बनी कुंजी वाले लेआउट की फ़ाइलें इस्तेमाल करना ज़रूरी नहीं है. उनकी बिलकुल ज़रूरत नहीं होती. यह सिस्टम, मुख्य वर्ण का एक सामान्य मैप उपलब्ध कराता है कई बाहरी कीबोर्ड के लिए उपयुक्त होता है.

अगर डिवाइस के हिसाब से, कुंजी के लेआउट की कोई खास फ़ाइल उपलब्ध नहीं है, तो सिस्टम डिफ़ॉल्ट सेटिंग चुनें.

जगह की जानकारी

मुख्य वर्ण वाली मैप फ़ाइलें यूएसबी वेंडर, प्रॉडक्ट (और वैकल्पिक रूप से वर्शन) के हिसाब से रखी जाती हैं id या इनपुट डिवाइस नाम के अनुसार.

नीचे दिए पाथ की सलाह क्रम से ली जाती है.

  • /odm/usr/keychars/Vendor_XXXX_Product_XXXX_Version_XXXX.kcm
  • /vendor/usr/keychars/Vendor_XXXX_Product_XXXX_Version_XXXX.kcm
  • /system/usr/keychars/Vendor_XXXX_Product_XXXX_Version_XXXX.kcm
  • /data/system/devices/keychars/Vendor_XXXX_Product_XXXX_Version_XXXX.kcm
  • /odm/usr/keychars/Vendor_XXXX_Product_XXXX.kcm
  • /vendor/usr/keychars/Vendor_XXXX_Product_XXXX.kcm
  • /system/usr/keychars/Vendor_XXXX_Product_XXXX.kcm
  • /data/system/devices/keychars/Vendor_XXXX_Product_XXXX.kcm
  • /odm/usr/keychars/DEVICE_NAME.kcm
  • /vendor/usr/keychars/DEVICE_NAME.kcm
  • /system/usr/keychars/DEVICE_NAME.kcm
  • /data/system/devices/keychars/DEVICE_NAME.kcm
  • /odm/usr/keychars/Generic.kcm
  • /vendor/usr/keychars/Generic.kcm
  • /system/usr/keychars/Generic.kcm
  • /data/system/devices/keychars/Generic.kcm
  • /odm/usr/keychars/Virtual.kcm
  • /vendor/usr/keychars/Virtual.kcm
  • /system/usr/keychars/Virtual.kcm
  • /data/system/devices/keychars/Virtual.kcm

डिवाइस नाम वाला फ़ाइल पाथ बनाते समय, सभी वर्ण डिवाइस के नाम में '0'-'9', 'a'-'z', 'A'-'Z', '-' या '_' को '_' से बदल दिया जाता है.

सामान्य कुंजी वर्ण वाली मैप फ़ाइल

यह सिस्टम, मैप में एक खास बिल्ट-इन की कैरेक्टर फ़ाइल उपलब्ध कराता है, जिसे Generic.kcm कहते हैं. इस मुख्य किरदार वाले मैप को, कई तरह के स्टैंडर्ड एक्सटर्नल को सपोर्ट करने के लिए डिज़ाइन किया गया है कीबोर्ड.

मुख्य वर्णों के सामान्य मैप में बदलाव न करें!

वर्चुअल की कैरेक्टर मैप फ़ाइल

यह सिस्टम एक खास बिल्ट-इन की कैरेक्टर मैप फ़ाइल उपलब्ध कराता है, जिसे Virtual.kcm कहते हैं का इस्तेमाल वर्चुअल कीबोर्ड डिवाइस करते हैं.

वर्चुअल कीबोर्ड डिवाइस एक सिंथेटिक इनपुट डिवाइस है, जिसका आईडी -1 है (KeyCharacterMap.VIRTUAL_KEYBOARD देखें). यह सभी Android डिवाइसों पर मौजूद होता है Android Honeycomb 3.0 से शुरू होता है. वर्चुअल कीबोर्ड डिवाइस का मकसद एक ऐसा बिल्ट-इन इनपुट डिवाइस उपलब्ध कराना है जिसका इस्तेमाल इंजेक्ट करने के लिए किया जा सके कीस्ट्रोक को IME या टेस्ट इंस्ट्रुमेंट के ऐप्लिकेशन में इंस्टॉल करता है, यहां तक कि उन डिवाइसों के लिए जिनमें पहले से कीबोर्ड नहीं हैं.

वर्चुअल कीबोर्ड का पूरा QWERTY लेआउट माना जाता है जो सभी डिवाइसों पर एक जैसा दिखना चाहिए. इससे ऐप्लिकेशन को इंजेक्ट करने में मदद मिलती है सेट करते हैं और हमेशा समान परिणाम प्राप्त करते हैं.

वर्चुअल की कैरेक्टर मैप में कोई बदलाव न करें!

वाक्य-विन्यास

मुख्य वर्ण वाली मैप फ़ाइल, एक सामान्य टेक्स्ट वाली फ़ाइल होती है. इसमें कीबोर्ड टाइप शामिल होता है साथ ही, कुछ अहम जानकारी भी होगी.

कीबोर्ड के टाइप का एलान

कीबोर्ड के टाइप के बारे में एलान से, कीबोर्ड के काम करने के तरीके के बारे में पता चलता है. कैरेक्टर मैप फ़ाइल में, कीबोर्ड टाइप का एलान होना ज़रूरी है. साफ़ शब्दों में, इसे अक्सर फ़ाइल के सबसे ऊपर रखा जाता है.

type FULL

इन कीबोर्ड टाइप की पहचान की जाती है:

  • NUMERIC: अंकों वाला (12 बटन वाला) कीबोर्ड.

    अंकों वाला कीबोर्ड, मल्टी-टैप वाले तरीके का इस्तेमाल करके टेक्स्ट एंट्री की सुविधा देता है. अपनी पसंद के अक्षर या सिंबल को जनरेट करने के लिए, हो सकता है कि आपको किसी कुंजी पर कई बार टैप करना पड़े.

    इस तरह का कीबोर्ड आम तौर पर थंब टाइपिंग के लिए बनाया जाता है.

    KeyCharacterMap.NUMERIC से मेल खाता है.

  • PREDICTIVE: ऐसा कीबोर्ड जिसमें सभी अक्षर होते हैं, लेकिन हर बटन में एक से ज़्यादा अक्षर होते हैं.

    इस तरह का कीबोर्ड आम तौर पर थंब टाइपिंग के लिए बनाया जाता है.

    KeyCharacterMap.PREDICTIVE से मेल खाता है.

  • ALPHA: ऐसा कीबोर्ड जिसमें सभी अक्षर हों और कुछ अंक हों.

    अक्षर के हिसाब से बना कीबोर्ड, टेक्स्ट डालने की सुविधा सीधे तौर पर देता है, लेकिन हो सकता है कि इसमें कुछ शब्द शामिल न हों लेआउट, जिसका नाप या आकार छोटा है. FULL कीबोर्ड के उलट, कुछ सिंबल को सिर्फ़ ऑन-स्क्रीन कैरेक्टर पिकर का इस्तेमाल करके ऐक्सेस किया जा सकता है. इसके अलावा, टाइपिंग की रफ़्तार और सटीक होने के लिए फ़्रेमवर्क, अक्षर और अंक वाले कीबोर्ड के लिए खास अधिकार, जैसे कि ऑटो-कैपिटलाइज़ेशन और SHIFT और ALT कुंजियों को टॉगल / लॉक किया गया.

    इस तरह का कीबोर्ड आम तौर पर थंब टाइपिंग के लिए बनाया जाता है.

  • FULL: पीसी की शैली में बना कीबोर्ड.

    पूरा कीबोर्ड, पीसी कीबोर्ड की तरह काम करता है. सभी सिंबल सीधे ऐक्सेस किए जा सकते हैं इसके लिए, कीबोर्ड पर मौजूद बटन दबाने से ऐसे पर अपने-आप कैपिटल लेटर का इस्तेमाल किया जा सकता है.

    इस तरह का कीबोर्ड आम तौर पर, दो हाथों से टाइप करने के लिए बनाया जाता है.

  • SPECIAL_FUNCTION: ऐसा कीबोर्ड जो सिर्फ़ सिस्टम को कंट्रोल करने के लिए इस्तेमाल किया जाता है लिखने के बजाय.

    विशेष फ़ंक्शन वाले कीबोर्ड में केवल प्रिंट न की जा सकने वाली कुंजियां होती हैं, जैसे कि Home और POWER जिनका इस्तेमाल टाइप करने के लिए नहीं किया जाता.

Generic.kcm और Virtual.kcm मुख्य वर्ण वाले मैप, दोनों FULL कीबोर्ड हैं.

मुख्य एलान

हर अहम जानकारी में key कीवर्ड के बाद Android कुंजी कोड शामिल होता है नाम, ओपन कर्ली ब्रेस, प्रॉपर्टी और व्यवहार का सेट, और क्लोज़ कर्ली ब्रेस.

key A {
    label:                              'A'
    base:                               'a'
    shift, capslock:                    'A'
    ctrl, alt, meta:                    none
}

प्रॉपर्टी

हर मुख्य प्रॉपर्टी, कुंजी से कार्रवाई तक की मैपिंग बनाती है. आसानी से कुंजी वर्ण वाली मैप फ़ाइलें ज़्यादा संक्षिप्त हो जाती हैं, इसलिए कई प्रॉपर्टी अल्पविराम से अलग करके समान व्यवहार.

ऊपर दिए गए उदाहरण में, label प्रॉपर्टी को 'A' की कार्रवाई असाइन की गई है. इसी तरह, ctrl, alt, और meta प्रॉपर्टी एक साथ असाइन की जाती हैं none व्यवहार.

इन प्रॉपर्टी की पहचान की जा सकती है:

  • label: कुंजी पर प्रिंट किए गए लेबल के बारे में बताता है. ऐसा तब होता है, जब वह में एक वर्ण होता है. यह वह वैल्यू होती है जिसे वैल्यू के तौर पर दिखाया जाता है KeyCharacterMap.getDisplayLabel तरीका.

  • number: किसी संख्या वाले व्यवहार (टाइप किया जाना चाहिए) के बारे में बताता है टेक्स्ट व्यू में फ़ोकस होता है, जैसे कि जब उपयोगकर्ता कोई फ़ोन नंबर टाइप कर रहा हो.

    कॉम्पैक्ट कीबोर्ड अक्सर एक ही बटन में कई निशानों को जोड़ देते हैं, जैसे कि शायद '1' और 'a' या '#' और 'q' टाइप करने के लिए भी उसी कुंजी का इस्तेमाल किया जाए. इन कुंजियों के लिए, number प्रॉपर्टी सेट होनी चाहिए, ताकि यह पता लगाया जा सके कि कौनसा सिंबल अगर लागू हो, तो उसे संख्या के हिसाब से लिखा जाना चाहिए.

    कुछ सामान्य "संख्यात्मक" चिह्नों में '0' से '9', '#', '+' तक के अंक होते हैं. '(', ')', ',', और '.'.

  • base: कोई मॉडिफ़ायर न होने पर, व्यवहार (टाइप किया जाना चाहिए वर्ण) के बारे में बताता है दबाए गए हैं.

  • <मॉडिफ़ायर> या <modifier1>+<modifier2>+...: इससे पता चलता है कि व्यवहार (वर्ण टाइप किया जाना चाहिए) जब कुंजी को दबाया जाता है और सभी तय किए गए मॉडिफ़ायर चालू हैं.

    उदाहरण के लिए, कार्रवाई बदलने वाली प्रॉपर्टी shift ऐसी कार्रवाई तय करती है जो तब लागू होती है जब बायां SHIFT या दायां SHIFT मॉडिफ़ायर दबाया जाता है.

    इसी तरह, कार्रवाई बदलने वाली प्रॉपर्टी rshift+ralt ऐसी कार्रवाई तय करती है जो लागू होती है जब RIGHT SHIFT और RIGHT ALT मॉडिफ़ायर एक साथ दबाया जाता है.

कार्रवाई बदलने वाली प्रॉपर्टी में, इन मॉडिफ़ायर की पहचान होती है:

  • shift: यह तब लागू होता है, जब लेफ़्ट SHIFT या RIGHT SHIFT मॉडिफ़ायर दबाया जाता है.
  • lshift: यह तब लागू होता है, जब बायां SHIFT मॉडिफ़ायर दबाया जाता है.
  • rshift: यह तब लागू होता है, जब दायां SHIFT मॉडिफ़ायर दबाया जाता है.
  • alt: यह तब लागू होता है, जब LEFT ALT या RIGHT ALT मॉडिफ़ायर को दबाया जाता है.
  • lalt: LEFT ALT मॉडिफ़ायर दबाने पर लागू होता है.
  • ralt: RIGHT ALT मॉडिफ़ायर दबाने पर लागू होता है.
  • ctrl: यह तब लागू होता है, जब लेफ़्ट कंट्रोल या राइट कंट्रोल मॉडिफ़ायर में से किसी एक को दबाया जाता है.
  • lctrl: बायां कंट्रोल मॉडिफ़ायर दबाने पर लागू होता है.
  • rctrl: 'राइट कंट्रोल मॉडिफ़ायर' दबाने पर लागू होता है.
  • meta: यह तब लागू होता है, जब लेफ़्ट मेटा या राइट मेटाडेटा मॉडिफ़ायर को दबाया जाता है.
  • lmeta: यह तब लागू होता है, जब बायां मेटा मॉडिफ़ायर दबाया जाता है.
  • rmeta: यह तब लागू होता है, जब दायां मेटा मॉडिफ़ायर दबाया जाता है.
  • sym: SYMBOL मॉडिफ़ायर दबाने पर लागू होता है.
  • fn: यह तब लागू होता है, जब Function मॉडिफ़ायर दबाया जाता है.
  • capslock: यह तब लागू होता है, जब CAPS LOCK संशोधक लॉक होता है.
  • numlock: NUM LOCK संशोधक लॉक होने पर लागू होता है.
  • scrolllock: यह तब लागू होता है, जब SCROLL LOCK संशोधक लॉक होता है.

प्रॉपर्टी की सूची का क्रम अहम होता है. कुंजी को मैप करते समय एक व्यवहार है, तो सिस्टम सभी प्रासंगिक प्रॉपर्टी को क्रम से स्कैन करता है और लागू होने वाला कोई व्यवहार है.

इस वजह से, बाद में तय की गई प्रॉपर्टी, होता है.

बटन दबाने पर होने वाली कार्रवाई

हर प्रॉपर्टी के लिए एक खास तरीका अपनाया जाता है. सबसे सामान्य व्यवहार है कोई वर्ण टाइप करना हालाँकि, और भी कई तरीक़े हैं.

ये व्यवहार मान्य हैं:

  • none: कोई वर्ण न लिखें.

    यह व्यवहार तब डिफ़ॉल्ट होता है, जब कोई वर्ण तय नहीं किया जाता है. none तय किया जा रहा है का इस्तेमाल करना ज़रूरी नहीं है. हालांकि, इससे कॉन्टेंट की क्वालिटी को बेहतर बनाया जा सकता है.

  • 'X': बताए गए वर्ण को लिटरल वैल्यू में टाइप करें.

    इस व्यवहार से खास वर्ण को फ़ोकस में डाला जाता है टेक्स्ट व्यू. लिटरल वैल्यू कोई भी ASCII वर्ण या ये एस्केप सीक्वेंस चलाए जा सकते हैं:

    • '\\': एक बैकस्लैश वर्ण लिखें.
    • '\n': लाइन में नया वर्ण टाइप करें (ENTER / Return के लिए इसका इस्तेमाल करें).
    • '\t': TAB वर्ण लिखें.
    • '\'': अपॉस्ट्रॉफ़ी वर्ण लिखें.
    • '\"': कोटेशन के लिए कोई वर्ण लिखें.
    • '\uXXXX': वह यूनिकोड वर्ण टाइप करें जिसका कोड पॉइंट XXXX से हेक्स में दिया जाता है.
  • fallback <Android कुंजी कोड का नाम>: अगर कुंजी नहीं है, तो डिफ़ॉल्ट कार्रवाई करें ऐप्लिकेशन मैनेज करता है.

    इस व्यवहार की वजह से सिस्टम किसी दूसरी कुंजी को दबाने पर एक ही तरह का बटन दबाता है निजी रूप से बताई गई कुंजी को हैंडल नहीं करता है. इसका इस्तेमाल डिफ़ॉल्ट ऐक्शन को सपोर्ट करने के लिए किया जाता है ऐसी नई कुंजियों के लिए जिसे सभी ऐप्लिकेशन को हैंडल करने का तरीका नहीं पता है, जैसे कि ESCAPE या अंकीय कीपैड कुंजियां (जब numlock दबाया नहीं जाता है).

    फ़ॉलबैक व्यवहार के लागू होने पर, ऐप्लिकेशन को दो बटन दबाने होंगे: एक ओरिजनल पासकोड के लिए और दूसरी चुनी गई फ़ॉलबैक पासकोड के लिए. अगर ऐप्लिकेशन, बटन अप करने के दौरान मूल कुंजी को हैंडल करता है, तो फ़ॉलबैक कुंजी इवेंट रद्द कर दिया जाएगा (KeyEvent.isCanceled वापस true लौटेगा).

खास फ़ंक्शन के लिए, सिस्टम दो यूनिकोड वर्ण सुरक्षित रखता है:

  • '\uef00': जब यह व्यवहार किया जाता है, तो टेक्स्ट व्यू, कर्सर के पहले चार वर्णों को, हेक्स अंकों के रूप में समझता है, और संबंधित यूनिकोड कोड पॉइंट.

  • '\uef01': जब यह व्यवहार किया जाता है, तो टेक्स्ट व्यू कैरेक्टर पिकर का डायलॉग बॉक्स, जिसमें कई तरह के सिंबल होते हैं.

सिस्टम नीचे दिए गए यूनिकोड वर्णों की पहचान, डायाक्रिटिकल डेड को जोड़कर देखता है मुख्य वर्ण:

  • '\u0300': शानदार लहजा.
  • '\u0301': तेज़ लहजा.
  • '\u0302': सर्कमफ़्लेक्स लहजा.
  • '\u0303': टिल्ड लहजा.
  • '\u0308': ऊमलॉट लहजा.

जब डेड की किसी कुंजी को टाइप करने के बाद कोई दूसरा वर्ण लिखा जाता है, तो बंद कुंजी और उसके बाद ये किरदारों के संगीत का इस्तेमाल किया जाता है. उदाहरण के लिए, जब कोई व्यक्ति ग्रेव ऐक्सेंट डेड टाइप करता है कुंजी के बाद अक्षर 'a' है, तो परिणाम 'à' होता है.

बंद कुंजी को हैंडल करने के बारे में ज़्यादा जानने के लिए, KeyCharacterMap.getDeadChar पर जाएं.

टिप्पणियां

टिप्पणी की लाइनें '#' से शुरू होती हैं और लाइन के आखिर तक जारी रखें. इस तरह:

# A comment!

खाली लाइनों को अनदेखा कर दिया जाता है.

मुख्य कॉम्बिनेशन को व्यवहार के हिसाब से कैसे मैप किया जाता है

जब कोई उपयोगकर्ता किसी बटन को दबाता है, तो सिस्टम उस बटन और हाल ही में दबाए गए मॉडिफ़ायर का कॉम्बिनेशन.

SHIFT के साथ A

मान लें कि उपयोगकर्ता ने A और SHIFT को एक साथ दबाया है. सिस्टम सबसे पहले, KEYCODE_A से जुड़ी प्रॉपर्टी और व्यवहार का सेट.

key A {
    label:                              'A'
    base:                               'a'
    shift, capslock:                    'A'
    ctrl, alt, meta:                    none
}

सिस्टम, प्रॉपर्टी को पहली से आखिरी से आखिरी तक और बाईं से दाईं ओर स्कैन करता है. इसमें ऐसा नहीं होता है label और number प्रॉपर्टी, जो खास हैं.

पहली प्रॉपर्टी base मिली है. base प्रॉपर्टी हमेशा इन पर लागू होती है बटन दबाया जा सकता है. इससे कोई फ़र्क़ नहीं पड़ता कि कौनसे मॉडिफ़ायर को दबाया गया है. यह ज़रूरी है कि यह डिफ़ॉल्ट कुंजी के लिए तब तक व्यवहार करता है, जब तक उसे इन प्रॉपर्टी से ओवरराइड न किया जाए. इस बटन को दबाने पर base प्रॉपर्टी लागू होती है, इसलिए सिस्टम इन बातों का ध्यान रखता है यह तथ्य है कि इसका व्यवहार 'a' है (वर्ण a लिखें).

इसके बाद, सिस्टम बाद में आने वाली प्रॉपर्टी को स्कैन करना जारी रखता है, ताकि उनमें से किसी एक प्रॉपर्टी का base से ज़्यादा खास हैं और इन्हें ओवरराइड करते हैं. इसने shift का सामना किया जो बटन SHIFT + A दबाने पर भी लागू होता है. इसलिए, सिस्टम यह तय करता है कि base प्रॉपर्टी कैसे काम करती है और उससे जुड़े व्यवहार को चुनता है shift प्रॉपर्टी, जो कि 'A' है (वर्ण A लिखें).

इसके बाद, यह टेबल को स्कैन करना जारी रखता है. हालांकि, इस पर कोई दूसरी प्रॉपर्टी लागू नहीं होती कुंजी दबाना (CAPS LOCK लॉक नहीं है, न तो Control कुंजी दबाई गई है, न ही कोई ALT कुंजी को दबाया जाता है और कोई भी मेटा कुंजी नहीं दबाई जाती है).

इस तरह, की कॉम्बिनेशन SHIFT + A के नतीजे के तौर पर 'A' एक नतीजा मिलेगा.

कंट्रोल + A

अब देखें कि अगर उपयोगकर्ता A और कंट्रोल को एक साथ दबाता है, तो क्या होगा.

पहले की तरह ही, सिस्टम प्रॉपर्टी की टेबल को स्कैन करेगा. यह को base प्रॉपर्टी लागू कर दी गई है, लेकिन यह भी तब तक स्कैन होता रहेगा, जब तक कि यह control प्रॉपर्टी तक पहुंच गया. ऐसा होने पर, control प्रॉपर्टी, base के बाद दिखती है. इसलिए, इसका व्यवहार base के बाद लागू होता है.

इस तरह, की कॉम्बिनेशन Control + A के नतीजे के तौर पर none नतीजा मिलेगा.

ESC बटन

अब मान लें कि उपयोगकर्ता ने ESCAPE दबाया है.

key ESCAPE {
    base:                               fallback BACK
    alt, meta:                          fallback HOME
    ctrl:                               fallback MENU
}

इस बार सिस्टम fallback BACK बिहेवियर की जानकारी लेता है, जो कि एक फ़ॉलबैक व्यवहार है. क्योंकि कोई भी वर्ण लिटरल नहीं दिखता, इसलिए कोई वर्ण टाइप नहीं किया जाएगा.

कुंजी को प्रोसेस करते समय, सिस्टम सबसे पहले KEYCODE_ESCAPE को का इस्तेमाल करें. अगर ऐप्लिकेशन इसे हैंडल नहीं करता, तो सिस्टम कोशिश करेगा फिर से लेकिन इस बार यह KEYCODE_BACK को ऐप्लिकेशन में इस रूप में डिलीवर करेगा: फ़ॉलबैक व्यवहार के तहत अनुरोध किया जाता है.

इसलिए, KEYCODE_ESCAPE को पहचानने और इसका इस्तेमाल करने वाले ऐप्लिकेशन के पास को उसी रूप में देखने का मौका मिलता है, लेकिन दूसरे ऐप्लिकेशन जो इसके बजाय ऐसा नहीं कर पाते कुंजी को KEYCODE_BACK की तरह ट्रीट करने के लिए फ़ॉलबैक कार्रवाई करें.

NUM LOCK के साथ या उसके बिना NUMPAD_0

न्यूमेरिक कीपैड बटन के अलग-अलग मतलब होते हैं. यह इस बात पर निर्भर करता है कि क्या NUM LOCK कुंजी लॉक है.

इस मुख्य एलान से यह पक्का होता है कि KEYCODE_NUMPAD_0, 0 टाइप करेगा जब NUM LOCK दबाया जाता है. NUM LOCK दबाया नहीं जाने पर, कुंजी डिलीवर कर दी जाती है को लागू नहीं करना है और अगर उसे हैंडल नहीं किया जाता है, तो फ़ॉलबैक इसके बजाय, KEYCODE_INSERT कुंजी डिलीवर की जाती है.

key NUMPAD_0 {
    label, number:                      '0'
    base:                               fallback INSERT
    numlock:                            '0'
    ctrl, alt, meta:                    none
}

जैसा कि हम देख सकते हैं कि फ़ॉलबैक कुंजी के एलान वाले फ़ॉर्म के साथ काम करने की क्षमता बेहतर होती है ऐसे पुराने ऐप्लिकेशन के साथ काम करते हैं जो सभी कुंजियों की पहचान नहीं करते या सीधे उनके साथ काम नहीं करते जो पीसी की स्टाइल वाले पूरे कीबोर्ड पर मौजूद हैं.

उदाहरण

पूरा कीबोर्ड

# This is an example of part of a key character map file for a full keyboard
# include a few fallback behaviors for special keys that few applications
# handle themselves.

type FULL

key C {
    label:                              'C'
    base:                               'c'
    shift, capslock:                    'C'
    alt:                                '\u00e7'
    shift+alt:                          '\u00c7'
    ctrl, meta:                         none
}

key SPACE {
    label:                              ' '
    base:                               ' '
    ctrl:                               none
    alt, meta:                          fallback SEARCH
}

key NUMPAD_9 {
    label, number:                      '9'
    base:                               fallback PAGE_UP
    numlock:                            '9'
    ctrl, alt, meta:                    none
}

अक्षर और अंकों वाला कीबोर्ड

# This is an example of part of a key character map file for an alphanumeric
# thumb keyboard.  Some keys are combined, such as `A` and `2`.  Here we
# specify `number` labels to tell the system what to do when the user is
# typing a number into a dial pad.
#
# Also note the special character '\uef01' mapped to ALT+SPACE.
# Pressing this combination of keys invokes an on-screen character picker.

type ALPHA

key A {
    label:                              'A'
    number:                             '2'
    base:                               'a'
    shift, capslock:                    'A'
    alt:                                '#'
    shift+alt, capslock+alt:            none
}

key SPACE {
    label:                              ' '
    number:                             ' '
    base:                               ' '
    shift:                              ' '
    alt:                                '\uef01'
    shift+alt:                          '\uef01'
}

गेमपैड

# This is an example of part of a key character map file for a game pad.
# It defines fallback actions that enable the user to navigate the user interface
# by pressing buttons.

type SPECIAL_FUNCTION

key BUTTON_A {
    base:                               fallback BACK
}

key BUTTON_X {
    base:                               fallback DPAD_CENTER
}

key BUTTON_START {
    base:                               fallback HOME
}

key BUTTON_SELECT {
    base:                               fallback MENU
}

कंपैटिबिलिटी नोट

Android Honeycomb 3.0 से पहले के वर्शन में, Android के मुख्य कैरेक्टर मैप की जानकारी जो बिलकुल अलग सिंटैक्स का इस्तेमाल करता है और उसे एक बाइनरी फ़ाइल फ़ॉर्मैट में कंपाइल किया जाता है बिल्ड के समय पर (.kcm.bin).

नए फ़ॉर्मैट में उसी एक्सटेंशन .kcm का इस्तेमाल किया गया है, लेकिन सिंटैक्स कुछ ऐसा है अलग (और ज़्यादा असरदार).

Android Honeycomb 3.0 के बाद के वर्शन के लिए, Android के मुख्य वर्ण वाली मैप फ़ाइलों में नया सिंटैक्स और सादा टेक्स्ट फ़ाइल फ़ॉर्मैट, जिसकी जानकारी इस दस्तावेज़ में दी गई है. पुराना सिंटैक्स काम नहीं करता और पुरानी .kcm.bin फ़ाइलों की पहचान नहीं की जाती है को ट्रैक करने की सुविधा मिलती है.

भाषा का नोट

फ़िलहाल, Android पर एक से ज़्यादा भाषाओं वाले कीबोर्ड काम नहीं करते. इसके अलावा, बिल्टइन सामान्य की कैरेक्टर मैप में यूएस इंग्लिश कीबोर्ड लेआउट का इस्तेमाल किया गया है.

OEM को अपने कीबोर्ड के लिए, पसंद के मुताबिक की कैरेक्टर मैप उपलब्ध कराने का सुझाव दिया जाता है तो उन्हें अलग-अलग भाषाओं में ही इस्तेमाल किया जा सकता है.

आने वाले समय में Android के जो वर्शन उपलब्ध होने वाले हैं वे एक से ज़्यादा भाषाओं वाले कीबोर्ड के लिए बेहतर सहायता दे सकते हैं या उपयोगकर्ता के चुने जा सकने वाले कीबोर्ड लेआउट.

पुष्टि करें

इसका इस्तेमाल करके, अपने मुख्य वर्ण की मैप फ़ाइलों की पुष्टि करना न भूलें कीमैप की पुष्टि करें टूल.