يوفّر نظام Android الأساسي إطار عمل المدقق الإملائي الذي يتيح لك تنفيذ التدقيق الإملائي والوصول إليه في تطبيقك. وإطار العمل هو أحد واجهات برمجة تطبيقات Text Service API.
لاستخدام إطار العمل في تطبيقك، يمكنك إنشاء إحدى خدمات Android التي تنشئ عنصر المدقق الإملائي session. استنادًا إلى النص الذي تقدمه، يعرض كائن الجلسة اقتراحات إملائية تم إنشاؤها بواسطة المدقق الإملائي.
مراحل نشاط المدقق الإملائي
يعرض المخطّط التالي دورة حياة خدمة المدقق الإملائي:
لبدء التدقيق الإملائي، يبدأ تطبيقك تنفيذ خدمة المدقق الإملائي. يطلب العملاء في تطبيقك، مثل الأنشطة أو عناصر واجهة المستخدم الفردية، جلسة مدقق إملائي من الخدمة، ثم يستخدمون الجلسة للحصول على اقتراحات للنص. عندما ينهي العميل عمله، فإنه يغلق جلسة المدقق الإملائي. إذا لزم الأمر، يمكن لتطبيقك إيقاف تشغيل خدمة المدقق الإملائي في أي وقت.
تنفيذ خدمة المدقق الإملائي
لاستخدام إطار عمل المدقق الإملائي في تطبيقك، يمكنك إضافة مكوِّن خدمة للمدقق الإملائي الذي يتضمن تعريف عنصر الجلسة. يمكنك أيضًا إضافة نشاط اختياري إلى تطبيقك يتحكم في الإعدادات. أضِف ملف بيانات وصفية بتنسيق 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
يستخدم المدقق الإملائي تلقائيًا:
ومع ذلك، قد ترغب في التفاعل مباشرة مع خدمة المدقق الإملائي في حالات أخرى. يوضح الرسم التخطيطي التالي تدفق التحكم للتفاعل مع خدمة المدقق الإملائي:
يحتوي محرِّر طريقة الإدخال اللاتينية في مشروع البرامج المفتوحة المصدر على Android على مثال للتدقيق الإملائي.