বানান পরীক্ষক কাঠামো

অ্যান্ড্রয়েড প্ল্যাটফর্ম একটি বানান পরীক্ষক ফ্রেমওয়ার্ক অফার করে যা আপনাকে আপনার অ্যাপে বানান পরীক্ষা বাস্তবায়ন এবং অ্যাক্সেস করতে দেয়। কাঠামোটি পাঠ্য পরিষেবা APIগুলির মধ্যে একটি।

আপনার অ্যাপে ফ্রেমওয়ার্ক ব্যবহার করতে, আপনি একটি Android পরিষেবা তৈরি করেন যা একটি বানান পরীক্ষক সেশন অবজেক্ট তৈরি করে। আপনার দেওয়া পাঠ্যের উপর ভিত্তি করে, সেশন অবজেক্টটি বানান পরীক্ষক দ্বারা উত্পন্ন বানান পরামর্শ প্রদান করে।

বানান পরীক্ষক জীবনচক্র

নিম্নলিখিত চিত্রটি বানান পরীক্ষক পরিষেবার জীবনচক্র দেখায়:

বানান পরীক্ষক পরিষেবার জীবনচক্র দেখানো একটি চিত্র৷
চিত্র 1. বানান পরীক্ষক পরিষেবা জীবনচক্র।

বানান পরীক্ষা শুরু করতে, আপনার অ্যাপ বানান পরীক্ষক পরিষেবার বাস্তবায়ন শুরু করে। আপনার অ্যাপের ক্লায়েন্টরা, যেমন কার্যকলাপ বা স্বতন্ত্র UI উপাদান, পরিষেবা থেকে একটি বানান পরীক্ষক সেশনের অনুরোধ করে, তারপর পাঠ্যের জন্য পরামর্শ পেতে সেশনটি ব্যবহার করুন৷ একজন ক্লায়েন্ট তার অপারেশন বন্ধ করার সাথে সাথে এটি তার বানান পরীক্ষক সেশন বন্ধ করে দেয়। প্রয়োজনে, আপনার অ্যাপ যে কোনো সময় বানান পরীক্ষক পরিষেবা বন্ধ করে দিতে পারে।

একটি বানান পরীক্ষক পরিষেবা বাস্তবায়ন করুন

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

বানান পরীক্ষক ক্লাস

নিম্নলিখিত ক্লাস সহ পরিষেবা এবং সেশন অবজেক্ট সংজ্ঞায়িত করুন:

  • SpellCheckerService এর একটি সাবক্লাস
    SpellCheckerService Service ক্লাস এবং বানান চেকার ফ্রেমওয়ার্ক ইন্টারফেস উভয়ই প্রয়োগ করে। আপনার সাবক্লাসের মধ্যে, নিম্নলিখিত পদ্ধতিটি বাস্তবায়ন করুন:
    createSession()
    একটি কারখানা পদ্ধতি যা বানান পরীক্ষা করতে চায় এমন একটি ক্লায়েন্টকে একটি SpellCheckerService.Session অবজেক্ট ফেরত দেয়।
  • SpellCheckerService.Session এর একটি বাস্তবায়ন
    একটি বস্তু যা বানান পরীক্ষক পরিষেবা ক্লায়েন্টদের বানান পরীক্ষকের কাছে পাঠ্য পাঠাতে এবং পরামর্শ পেতে দেয়। এই শ্রেণীর মধ্যে, নিম্নলিখিত পদ্ধতিগুলি বাস্তবায়ন করুন:
    onCreate()
    createSession() এর প্রতিক্রিয়া হিসাবে সিস্টেম দ্বারা কল করা হয়। এই পদ্ধতিতে, আপনি বর্তমান লোকেল এবং অন্যান্য বিবরণের উপর ভিত্তি করে SpellCheckerService.Session অবজেক্ট শুরু করতে পারেন।
    onGetSentenceSuggestionsMultiple()
    প্রকৃত বানান পরীক্ষা সম্পাদন করে। এই পদ্ধতিটি SentenceSuggestionsInfo এর একটি অ্যারে প্রদান করে যাতে এটিতে দেওয়া বাক্যগুলির জন্য পরামর্শ রয়েছে।

    ঐচ্ছিকভাবে, আপনি onCancel() প্রয়োগ করতে পারেন, যা বানান পরীক্ষা বাতিল করার অনুরোধগুলি পরিচালনা করে; onGetSuggestions() , যা একটি শব্দ পরামর্শ অনুরোধ পরিচালনা করে; অথবা onGetSuggestionsMultiple() , যা শব্দ সাজেশন অনুরোধের ব্যাচগুলি পরিচালনা করে।

বানান পরীক্ষক ম্যানিফেস্ট এবং মেটাডেটা

কোড ছাড়াও, বানান পরীক্ষকের জন্য উপযুক্ত ম্যানিফেস্ট ফাইল এবং একটি মেটাডেটা ফাইল প্রদান করুন।

ম্যানিফেস্ট ফাইল অ্যাপ, পরিষেবা এবং সেটিংস নিয়ন্ত্রণের কার্যকলাপকে সংজ্ঞায়িত করে, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   
package="com.example.android.samplespellcheckerservice" >
   
<application
       
android:label="@string/app_name" >
       
<service
           
android:label="@string/app_name"
           
android:name=".SampleSpellCheckerService"
           
android:permission="android.permission.BIND_TEXT_SERVICE" >
           
<intent-filter >
               
<action android:name="android.service.textservice.SpellCheckerService" />
           
</intent-filter>

           
<meta-data
               
android:name="android.view.textservice.scs"
               
android:resource="@xml/spellchecker" />
       
</service>

       
<activity
           
android:label="@string/sample_settings"
           
android:name="SpellCheckerSettingsActivity" >
           
<intent-filter >
               
<action android:name="android.intent.action.MAIN" />
           
</intent-filter>
       
</activity>
   
</application>
</manifest>

যে উপাদানগুলি পরিষেবাটি ব্যবহার করতে চায় তাদের অবশ্যই BIND_TEXT_SERVICE অনুমতির অনুরোধ করতে হবে যাতে নিশ্চিত করা যায় যে কেবলমাত্র সিস্টেমটি পরিষেবাটির সাথে আবদ্ধ হয়৷ পরিষেবার সংজ্ঞা spellchecker.xml মেটাডেটা ফাইলকেও নির্দিষ্ট করে, যা পরবর্তী বিভাগে বর্ণিত হয়েছে।

মেটাডেটা ফাইল spellchecker.xml এ নিম্নলিখিত XML রয়েছে:

<spell-checker xmlns:android="http://schemas.android.com/apk/res/android"
       
android:label="@string/spellchecker_name"
       
android:settingsActivity="com.example.SpellCheckerSettingsActivity">
   
<subtype
           
android:label="@string/subtype_generic"
           
android:subtypeLocale="en”
    />

   
<subtype
           
android:label="@string/subtype_generic"
           
android:subtypeLocale="fr”
    />

</spell-checker>

মেটাডেটা সেই কার্যকলাপ নির্দিষ্ট করে যা বানান পরীক্ষক সেটিংস নিয়ন্ত্রণ করতে ব্যবহার করে। এটি বানান পরীক্ষকের জন্য উপপ্রকারও সংজ্ঞায়িত করে। এই ক্ষেত্রে, সাবটাইপগুলি লোকেলগুলিকে সংজ্ঞায়িত করে যা বানান পরীক্ষক পরিচালনা করতে পারে।

একটি ক্লায়েন্ট থেকে বানান পরীক্ষক পরিষেবা অ্যাক্সেস করুন

যে অ্যাপগুলি TextView এবং EditText ভিউ ব্যবহার করে তারা স্বয়ংক্রিয়ভাবে বানান পরীক্ষা থেকে উপকৃত হয়, কারণ TextView স্বয়ংক্রিয়ভাবে একটি বানান পরীক্ষক ব্যবহার করে:

EditText-এ কীভাবে বানান পরীক্ষক স্বয়ংক্রিয়ভাবে সক্ষম হয় তা দেখানো একটি চিত্র
চিত্র 2. একটি EditText এ বানান পরীক্ষা করা হচ্ছে।

যাইহোক, আপনি অন্য ক্ষেত্রে একটি বানান পরীক্ষক পরিষেবার সাথে সরাসরি যোগাযোগ করতে চাইতে পারেন। নিম্নলিখিত চিত্রটি একটি বানান পরীক্ষক পরিষেবার সাথে ইন্টারঅ্যাক্ট করার জন্য নিয়ন্ত্রণের প্রবাহ দেখায়:

একটি বানান পরীক্ষক পরিষেবার সাথে ইন্টারঅ্যাকশনের ডায়াগ্রাম দেখানো একটি চিত্র৷
চিত্র 3. একটি বানান পরীক্ষক পরিষেবার সাথে মিথস্ক্রিয়া।

অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্টের ল্যাটিনআইএমই ইনপুট মেথড এডিটরটিতে বানান পরীক্ষার একটি উদাহরণ রয়েছে।