פלטפורמת Android מציעה מסגרת לבדיקת איות שמאפשרת לך להטמיע את בדיקת האיות באפליקציה ולגשת אליה. המסגרת היא אחת ממשקי API של שירות טקסט.
כדי להשתמש ב-framework באפליקציה שלכם, אתם צריכים ליצור שירות Android יוצרת אובייקט סשן לבדיקת איות. על סמך טקסט שתספקו, אובייקט הסשן מחזיר הצעות איות שנוצרות על ידי האיות שבודק.
מחזור החיים של בדיקת איות
בתרשים הבא מוצג מחזור החיים של שירות בדיקת האיות:
כדי להתחיל בדיקת איות, האפליקציה מתחילה את הטמעת האיות שירות בדיקה. לקוחות באפליקציה שלך, כמו פעילויות או ממשק משתמש ספציפי רכיבים, לבקש מהשירות של בדיקת האיות להפעיל ואז להשתמש בסשן כדי לקבל הצעות לטקסט. כשלקוח מסיים את הפעילות שלו, הוא נסגר את הפעלת בדיקת האיות. במקרה הצורך, האפליקציה יכולה לכבות את האיות תמיד.
הטמעת שירות של בדיקת איות
כדי להשתמש במסגרת בדיקת האיות באפליקציה, צריך להוסיף שירות לבדיקת איות שכולל את הגדרת אובייקט הסשן. אפשר גם להוסיף פעילות אופציונלית באפליקציה ששולטת בהגדרות. הוספת קובץ מטא-נתונים בפורמט XML שמתארת את שירות בדיקת האיות, ומוסיפים את הרכיבים המתאימים את קובץ המניפסט.
כיתות בדיקת איות
מגדירים את אובייקט השירות והסשן באמצעות המחלקות הבאות:
-
- תת-מחלקה של
SpellCheckerService
- ב-
SpellCheckerService
מטמיעים גם אתService
והממשק של מסגרת בדיקת האיות. במחלקה המשנית, להטמיע את השיטה הבאה:createSession()
- שיטת היצרן שמחזירה
האובייקט
SpellCheckerService.Session
ללקוח רוצה לבדוק את האיות.
- תת-מחלקה של
-
- יישום של
SpellCheckerService.Session
- אובייקט ששירות בדיקת האיות מספק ללקוחות כדי לאפשר להעביר להם טקסט לבודק האיות ולקבל הצעות. בתוך class, מטמיעים את השיטות הבאות:
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 כולל דוגמה בדיקת איות.