মূল অক্ষর মানচিত্র ফাইল

কী ক্যারেক্টার ম্যাপ ফাইলগুলি ( .kcm ফাইলগুলি) ইউনিকোড অক্ষরগুলির সংশোধকগুলির সাথে অ্যান্ড্রয়েড কী কোডগুলির সংমিশ্রণ ম্যাপিংয়ের জন্য দায়ী৷

ডিভাইস-নির্দিষ্ট কী লেআউট ফাইলগুলি সমস্ত অভ্যন্তরীণ (বিল্ট-ইন) ইনপুট ডিভাইসগুলির জন্য প্রয়োজনীয় যেগুলিতে কী আছে, যদি শুধুমাত্র সিস্টেমকে বলতে হয় যে ডিভাইসটি শুধুমাত্র বিশেষ উদ্দেশ্য (সম্পূর্ণ কীবোর্ড নয়)।

ডিভাইস-নির্দিষ্ট কী লেআউট ফাইলগুলি বহিরাগত কীবোর্ডগুলির জন্য ঐচ্ছিক , এবং প্রায়শই প্রয়োজন হয় না। সিস্টেমটি একটি জেনেরিক কী অক্ষর মানচিত্র প্রদান করে যা অনেক বাহ্যিক কীবোর্ডের জন্য উপযুক্ত।

যদি কোনো ডিভাইস-নির্দিষ্ট কী লেআউট ফাইল উপলব্ধ না হয়, তাহলে সিস্টেম পরিবর্তে একটি ডিফল্ট নির্বাচন করবে।

অবস্থান

মূল অক্ষর মানচিত্র ফাইলগুলি USB বিক্রেতা, পণ্য (এবং ঐচ্ছিক সংস্করণ) আইডি বা ইনপুট ডিভাইসের নাম দ্বারা অবস্থিত।

নিম্নলিখিত পাথ ক্রমানুসারে পরামর্শ করা হয়.

  • /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 Honeycomb 3.0 দিয়ে শুরু হওয়া সমস্ত Android ডিভাইসে উপস্থিত। ভার্চুয়াল কীবোর্ড ডিভাইসের উদ্দেশ্য হল একটি পরিচিত অন্তর্নির্মিত ইনপুট ডিভাইস প্রদান করা যা 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 থাকে যার পরে একটি অ্যান্ড্রয়েড কী কোড নাম, একটি খোলা কোঁকড়া বন্ধনী, বৈশিষ্ট্য এবং আচরণের একটি সেট এবং একটি ঘনিষ্ঠ কোঁকড়া বন্ধনী থাকে।

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 : আচরণ (অক্ষর যা টাইপ করা উচিত) নির্দিষ্ট করে যখন কোনো মডিফায়ার চাপা হয় না।

  • <modifier> or <modifier1> + <modifier2> + ...: কী টিপলে এবং নির্দিষ্ট সমস্ত সংশোধক সক্রিয় থাকলে আচরণ (অক্ষর যা টাইপ করা উচিত) নির্দিষ্ট করে।

    উদাহরণস্বরূপ, মডিফায়ার প্রপার্টি shift এমন একটি আচরণ নির্দিষ্ট করে যা প্রযোজ্য হয় যখন বাম শিফট বা ডান পালা সংশোধক চাপা হয়।

    একইভাবে, মডিফায়ার প্রপার্টি rshift+ralt একটি আচরণ নির্দিষ্ট করে যা প্রযোজ্য হয় যখন উভয় রাইট শিফট এবং রাইট ALT মডিফায়ার একসাথে চাপা হয়।

নিম্নলিখিত সংশোধকগুলি সংশোধক বৈশিষ্ট্যগুলিতে স্বীকৃত:

  • shift : বাম শিফট বা ডান পালা পরিবর্তনকারী চাপলে প্রযোজ্য হয়।
  • lshift : যখন বাম শিফট মডিফায়ার চাপা হয় তখন প্রযোজ্য হয়।
  • rshift : রাইট শিফট মডিফায়ার চাপলে প্রযোজ্য হয়।
  • alt : বাম ALT বা ডান ALT সংশোধক চাপলে প্রযোজ্য হয়।
  • lalt : যখন বাম ALT মডিফায়ার চাপা হয় তখন প্রযোজ্য হয়।
  • ralt : রাইট ALT মডিফায়ার চাপলে প্রযোজ্য হয়।
  • ctrl : বাম নিয়ন্ত্রণ বা ডান নিয়ন্ত্রণ সংশোধক চাপলে প্রযোজ্য।
  • lctrl : বাম নিয়ন্ত্রণ পরিবর্তনকারী চাপলে প্রযোজ্য হয়।
  • rctrl : রাইট কন্ট্রোল মডিফায়ার চাপলে প্রযোজ্য হয়।
  • meta : বাম মেটা বা ডান মেটা সংশোধক চাপলে প্রযোজ্য।
  • lmeta : বাম মেটা মডিফায়ার টিপলে প্রযোজ্য হয়।
  • rmeta : রাইট মেটা মডিফায়ার চাপলে প্রযোজ্য হয়।
  • sym : SYMBOL মডিফায়ার চাপলে প্রযোজ্য হয়।
  • fn : যখন FUNCTION মডিফায়ার চাপা হয় তখন প্রযোজ্য হয়।
  • capslock : যখন CAPS LOCK মডিফায়ার লক করা থাকে তখন প্রযোজ্য হয়।
  • numlock : যখন NUM LOCK মডিফায়ার লক করা থাকে তখন প্রযোজ্য হয়।
  • scrolllock : স্ক্রোল লক মডিফায়ার লক করা থাকলে প্রযোজ্য।

যে ক্রমে বৈশিষ্ট্যগুলি তালিকাভুক্ত করা হয়েছে তা উল্লেখযোগ্য। একটি আচরণের কী ম্যাপ করার সময়, সিস্টেমটি সমস্ত প্রাসঙ্গিক বৈশিষ্ট্যগুলিকে ক্রমানুসারে স্ক্যান করে এবং এটি পাওয়া সর্বশেষ প্রযোজ্য আচরণটি ফেরত দেয়।

ফলস্বরূপ, পরবর্তীতে নির্দিষ্ট করা বৈশিষ্ট্যগুলি একটি প্রদত্ত কী-এর জন্য আগে নির্দিষ্ট করা বৈশিষ্ট্যগুলিকে ওভাররাইড করে।

আচরণ

প্রতিটি সম্পত্তি একটি আচরণ মানচিত্র. সবচেয়ে সাধারণ আচরণ একটি অক্ষর টাইপ করা হয় কিন্তু অন্য আছে.

নিম্নলিখিত আচরণগুলি স্বীকৃত:

  • none : একটি অক্ষর টাইপ করবেন না।

    এই আচরণটি ডিফল্ট যখন কোন অক্ষর নির্দিষ্ট করা হয় না। none নির্দিষ্ট করা ঐচ্ছিক নয় তবে এটি স্বচ্ছতার উন্নতি করে।

  • 'X' : নির্দিষ্ট অক্ষর আক্ষরিক টাইপ করুন।

    এই আচরণের কারণে নির্দিষ্ট অক্ষরটিকে ফোকাস করা টেক্সট ভিউতে প্রবেশ করানো হয়। আক্ষরিক অক্ষরটি যেকোন ASCII অক্ষর হতে পারে, অথবা নিম্নলিখিত এস্কেপ সিকোয়েন্সগুলির মধ্যে একটি হতে পারে:

    • '\\' : একটি ব্যাকস্ল্যাশ অক্ষর টাইপ করুন।
    • '\n' : একটি নতুন লাইন অক্ষর টাইপ করুন (এটি এন্টার / রিটার্নের জন্য ব্যবহার করুন)।
    • '\t' : একটি TAB অক্ষর টাইপ করুন।
    • '\'' : একটি apostrophe অক্ষর টাইপ করুন।
    • '\"' : একটি উদ্ধৃতি অক্ষর টাইপ করুন।
    • '\uXXXX' : ইউনিকোড অক্ষর টাইপ করুন যার কোড পয়েন্ট হেক্সে XXXX দ্বারা দেওয়া হয়েছে।
  • fallback <অ্যান্ড্রয়েড কী কোড নাম>: একটি ডিফল্ট ক্রিয়া সম্পাদন করুন যদি কীটি অ্যাপ্লিকেশন দ্বারা পরিচালিত না হয়।

    এই আচরণের ফলে সিস্টেম একটি ভিন্ন কী প্রেসের অনুকরণ করে যখন একটি অ্যাপ্লিকেশন নির্দিষ্ট কীটি স্থানীয়ভাবে পরিচালনা করে না। এটি নতুন কীগুলির জন্য ডিফল্ট আচরণকে সমর্থন করার জন্য ব্যবহৃত হয় যা সমস্ত অ্যাপ্লিকেশনগুলি কীভাবে পরিচালনা করতে হয় তা জানে না, যেমন ESCAPE বা সংখ্যাসূচক কীপ্যাড কী (যখন numlock চাপানো হয় না)।

    যখন একটি ফলব্যাক আচরণ সঞ্চালিত হয়, তখন অ্যাপ্লিকেশনটি দুটি কী প্রেস করবে: একটি আসল কীটির জন্য এবং অন্যটি নির্বাচন করা ফলব্যাক কীটির জন্য। যদি অ্যাপ্লিকেশনটি কী আপ চলাকালীন মূল কীটি পরিচালনা করে, তাহলে ফলব্যাক কী ইভেন্টটি বাতিল করা হবে ( KeyEvent.isCanceled true ফিরে আসবে)।

সিস্টেমটি বিশেষ ফাংশন সঞ্চালনের জন্য দুটি ইউনিকোড অক্ষর সংরক্ষণ করে:

  • '\uef00' : যখন এই আচরণটি সঞ্চালিত হয়, পাঠ্য দৃশ্য কার্সারের পূর্ববর্তী চারটি অক্ষরকে গ্রাস করে এবং সরিয়ে দেয়, তাদের হেক্স সংখ্যা হিসাবে ব্যাখ্যা করে এবং সংশ্লিষ্ট ইউনিকোড কোড পয়েন্ট সন্নিবেশ করে।

  • '\uef01' : এই আচরণটি সঞ্চালিত হলে, পাঠ্য দৃশ্য একটি অক্ষর চয়নকারী ডায়ালগ প্রদর্শন করে যাতে বিবিধ প্রতীক রয়েছে।

সিস্টেমটি নিম্নলিখিত ইউনিকোড অক্ষরগুলিকে ডায়াক্রিটিকাল মৃত কী অক্ষরগুলির সংমিশ্রণ হিসাবে স্বীকৃতি দেয়:

  • '\u0300' : গুরুতর উচ্চারণ।
  • '\u0301' : তীব্র উচ্চারণ।
  • '\u0302' : সার্কামফ্লেক্স অ্যাকসেন্ট।
  • '\u0303' : টিল্ড অ্যাকসেন্ট।
  • '\u0308' : Umlaut উচ্চারণ।

যখন একটি মৃত কী টাইপ করা হয় অন্য অক্ষর দ্বারা অনুসরণ করা হয়, তখন মৃত কী এবং নিম্নলিখিত অক্ষরগুলি গঠিত হয়। উদাহরণস্বরূপ, যখন ব্যবহারকারী একটি গ্রেভ অ্যাকসেন্ট ডেড কী টাইপ করে তারপর অক্ষর '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 লক করা হয় না, না কন্ট্রোল কী চাপা হয় না, ALT কী চাপা হয় না এবং META কী চাপা হয় না)।

তাই SHIFT + A-এর মূল সমন্বয়ের ফলস্বরূপ আচরণ হল 'A'

কন্ট্রোল + ক

এখন বিবেচনা করুন যদি ব্যবহারকারী A এবং CONTROL একসাথে চাপেন তাহলে কি ঘটবে।

আগের মত, সিস্টেম বৈশিষ্ট্যের টেবিল স্ক্যান করবে। এটি লক্ষ্য করবে যে base সম্পত্তি প্রয়োগ করা হয়েছে কিন্তু শেষ পর্যন্ত এটি control সম্পত্তিতে না পৌঁছানো পর্যন্ত স্ক্যানিং চালিয়ে যাবে। এটি যেমন ঘটে, control সম্পত্তি base পরে উপস্থিত হয় তাই এর আচরণ base আচরণকে ওভাররাইড করে।

তাই CONTROL + A-এর মূল সমন্বয়ের জন্য ফলস্বরূপ আচরণ none

এস্কেপ

এখন ধরুন ব্যবহারকারী ESCAPE চাপলেন।

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

এই সময় সিস্টেমটি আচরণ fallback BACK , একটি ফলব্যাক আচরণ পায়। কারণ কোন অক্ষর আক্ষরিকভাবে প্রদর্শিত হবে না, কোন অক্ষর টাইপ করা হবে না।

কী প্রক্রিয়া করার সময়, সিস্টেমটি প্রথমে অ্যাপ্লিকেশনটিতে KEYCODE_ESCAPE প্রদান করবে। যদি অ্যাপ্লিকেশনটি এটি পরিচালনা না করে, তাহলে সিস্টেমটি আবার চেষ্টা করবে কিন্তু এইবার এটি ফলব্যাক আচরণের অনুরোধ অনুযায়ী অ্যাপ্লিকেশনটিতে KEYCODE_BACK প্রদান করবে।

সুতরাং যে অ্যাপ্লিকেশনগুলি KEYCODE_ESCAPE চিনতে এবং সমর্থন করে তাদের কাছে এটিকে যেমন আছে তেমনভাবে পরিচালনা করার সুযোগ রয়েছে, তবে অন্যান্য অ্যাপ্লিকেশনগুলি যা এর পরিবর্তে কীটিকে KEYCODE_BACK হিসাবে ব্যবহার করার ফলব্যাক ক্রিয়া সম্পাদন করতে পারে না।

NUMPAD_0 NUM LOCK সহ বা ছাড়া

NUM LOCK কী লক করা আছে কিনা তার উপর নির্ভর করে সাংখ্যিক কীপ্যাড কীগুলির খুব ভিন্ন ব্যাখ্যা রয়েছে।

নিম্নলিখিত কী ঘোষণা নিশ্চিত করে যে NUM LOCK চাপলে KEYCODE_NUMPAD_0 প্রকার 0 । যখন 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
}

সামঞ্জস্যপূর্ণ নোট

অ্যান্ড্রয়েড হানিকম্ব 3.0-এর আগে, অ্যান্ড্রয়েড কী অক্ষর মানচিত্রটি একটি ভিন্ন সিনট্যাক্স ব্যবহার করে নির্দিষ্ট করা হয়েছিল এবং বিল্ড টাইমে একটি বাইনারি ফাইল ফরম্যাটে ( .kcm.bin ) কম্পাইল করা হয়েছিল।

যদিও নতুন বিন্যাসে একই এক্সটেনশন .kcm ব্যবহার করা হয়েছে, সিনট্যাক্সটি বেশ ভিন্ন (এবং অনেক বেশি শক্তিশালী)।

Android Honeycomb 3.0 অনুযায়ী, সমস্ত Android কী ক্যারেক্টার ম্যাপ ফাইলকে অবশ্যই নতুন সিনট্যাক্স এবং প্লেইন টেক্সট ফাইল ফরম্যাট ব্যবহার করতে হবে যা এই ডকুমেন্টে বর্ণনা করা হয়েছে। পুরানো সিনট্যাক্স সমর্থিত নয় এবং পুরানো .kcm.bin ফাইলগুলি সিস্টেম দ্বারা স্বীকৃত নয়৷

ভাষার নোট

অ্যান্ড্রয়েড বর্তমানে বহুভাষিক কীবোর্ড সমর্থন করে না। তদুপরি, অন্তর্নির্মিত জেনেরিক কী অক্ষর মানচিত্রটি একটি মার্কিন ইংরেজি কীবোর্ড বিন্যাস অনুমান করে।

OEMগুলিকে তাদের কীবোর্ডগুলির জন্য কাস্টম কী অক্ষর মানচিত্র প্রদান করতে উত্সাহিত করা হয় যদি সেগুলি অন্য ভাষার জন্য ডিজাইন করা হয়।

Android এর ভবিষ্যত সংস্করণগুলি বহুভাষিক কীবোর্ড বা ব্যবহারকারী-নির্বাচনযোগ্য কীবোর্ড লেআউটগুলির জন্য আরও ভাল সমর্থন প্রদান করতে পারে।

বৈধতা

ভ্যালিডেট কীম্যাপ টুল ব্যবহার করে আপনার কী ক্যারেক্টার ম্যাপ ফাইলগুলো যাচাই করা নিশ্চিত করুন।