स्पेल-चेकर फ़्रेमवर्क

Android प्लैटफ़ॉर्म, स्पेल-चेकर फ़्रेमवर्क उपलब्ध कराता है. इससे आपको अपने ऐप्लिकेशन में स्पेल चेकिंग लागू करें और उसे ऐक्सेस करें. यह फ़्रेमवर्क एक Text Service API.

अपने ऐप्लिकेशन में फ़्रेमवर्क का इस्तेमाल करने के लिए, ऐसी Android सेवा बनाएं जो स्पेल चेकर सेशन ऑब्जेक्ट जनरेट करता है. आपके टेक्स्ट के आधार पर, सेशन ऑब्जेक्ट, स्पेल से जनरेट किए गए स्पेलिंग के सुझाव दिखाता है चेकर.

स्पेल-चेकर का लाइफ़साइकल

नीचे दिया गया डायग्राम, स्पेल चेकर सेवा की लाइफ़साइकल को दिखाता है:

स्पेलिंग जांचने वाली सेवा का लाइफ़साइकल दिखाने वाली इमेज
पहली इमेज. स्पेल-चेकर सेवा लाइफ़साइकल.

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

स्पेल चेकर सेवा को लागू करें

अपने ऐप्लिकेशन में स्पेल चेकर फ़्रेमवर्क इस्तेमाल करने के लिए, स्पेल चेकर सेवा जोड़ें वह कॉम्पोनेंट जिसमें सेशन ऑब्जेक्ट की परिभाषा शामिल है. आप यह भी जोड़ सकते हैं आपके ऐप्लिकेशन पर की गई ऐसी वैकल्पिक गतिविधि जो सेटिंग कंट्रोल करती है. कोई एक्सएमएल मेटाडेटा फ़ाइल जोड़ें जो स्पेल चेकर सेवा के बारे में बताता है और सही एलिमेंट को को अपलोड करने की ज़रूरत नहीं है.

स्पेल-चेकर क्लास

इन क्लास की मदद से सेवा और सेशन ऑब्जेक्ट तय करें:

  • इसकी एक सब-क्लास 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 में ये शामिल हैं एक्सएमएल:

<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.

हालांकि, आपको स्पेल चेकर सर्विस से सीधे इंटरैक्ट करना पड़ सकता है अन्य मामलों में. नीचे दिए गए डायग्राम में, इंटरैक्ट करने के लिए कंट्रोल फ़्लो को दिखाया गया है स्पेल चेकर सेवा की मदद से:

स्पेल चेकर सेवा के साथ हुए इंटरैक्शन का डायग्राम दिखाने वाली इमेज
तीसरी इमेज. स्पेल चेकर के साथ इंटरैक्शन सेवा.

कॉन्टेंट बनाने लैटिनIME Android ओपन सोर्स प्रोजेक्ट के इनपुट के तरीके में बदलाव करने वाले टूल में स्पेल चेकिंग.