إطار عمل المدقق الإملائي

يوفر نظام Android الأساسي إطار عمل للمدقق الإملائي الذي يتيح لك وتنفيذ التدقيق الإملائي والوصول إليه في تطبيقك. إطار العمل هو أحد واجهات برمجة التطبيقات للخدمات النصية.

لاستخدام إطار العمل في تطبيقك، عليك إنشاء خدمة Android ينشئ كائن session المدقّق الإملائي. بناءً على النص الذي تقدمه، يقوم كائن الجلسة بإرجاع اقتراحات إملائية تم إنشاؤها بواسطة التعويذة مدقق الفيديو.

دورة حياة المدقق الإملائي

يوضح المخطّط التالي دورة حياة خدمة المدقق الإملائي:

صورة تعرض دورة حياة خدمة التدقيق الإملائي
الشكل 1. خدمة المدقق الإملائي دورة حياة المنتج.

لبدء التدقيق الإملائي، يبدأ تطبيقك في تنفيذ التدقيق الإملائي. خدمة التحقق من المعلنين. العملاء في تطبيقك، مثل الأنشطة أو واجهة المستخدم الفردية اطلب جلسة مدقق إملائي من الخدمة، ثم استخدم الجلسة للحصول على اقتراحات للنص. وعندما ينهي العميل عمله، يتم إغلاقه. جلسة المدقق الإملائي. إذا لزم الأمر، يمكن لتطبيقك إيقاف هذه الميزة التحقق في أي وقت.

تنفيذ خدمة المدقق الإملائي

لاستخدام إطار عمل المدقّق الإملائي في تطبيقك، عليك إضافة خدمة للتدقيق الإملائي. يتضمن تعريف كائن الجلسة. يمكنك أيضًا إضافة نشاط اختياري إلى تطبيقك يتحكّم في الإعدادات. إضافة ملف بيانات وصفية بتنسيق 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. التفاعل مع المدقق الإملائي خدمة ما.

تشير رسالة الأشكال البيانية محرر أسلوب الإدخال اللاتيني محرر أسلوب الإدخال في "المشروع المفتوح المصدر لنظام Android" الذي يحتوي على مثال التدقيق الإملائي.