แพลตฟอร์ม Android มีเฟรมเวิร์กเครื่องตรวจตัวสะกดที่ช่วยให้คุณ ใช้และเข้าถึงการตรวจตัวสะกดในแอป เฟรมเวิร์กนี้เป็นหนึ่งใน Text Service API
หากต้องการใช้เฟรมเวิร์กในแอป คุณจะต้องสร้างบริการ Android ที่ จะสร้างออบเจ็กต์เซสชันของเครื่องมือตรวจตัวสะกด โดยอิงจากข้อความที่คุณให้ไว้ ออบเจ็กต์เซสชันจะแสดงคำแนะนำการสะกดคำที่สร้างโดยการสะกด เครื่องมือตรวจสอบ
วงจรเครื่องตรวจตัวสะกด
แผนภาพต่อไปนี้แสดงวงจรของบริการโปรแกรมตรวจตัวสะกด
หากต้องการเริ่มตรวจตัวสะกด แอปจะเริ่มนำตัวสะกดดังกล่าวมาใช้ ของบริการตรวจสอบ ไคลเอ็นต์ในแอปของคุณ เช่น กิจกรรมหรือ UI แต่ละรายการ ให้ส่งคำขอเซสชันโปรแกรมตรวจตัวสะกดจากบริการ จากนั้นจึงใช้เซสชัน เพื่อรับคำแนะนำเกี่ยวกับข้อความ หากลูกค้าสิ้นสุดการดำเนินการ ระบบจะปิด เซสชันเครื่องตรวจตัวสะกด แอปของคุณสามารถปิดตัวสะกดได้หากจำเป็น เครื่องมือตรวจสอบบริการได้ทุกเมื่อ
ใช้บริการเครื่องตรวจตัวสะกด
เพิ่มบริการโปรแกรมตรวจตัวสะกดเพื่อใช้เฟรมเวิร์กโปรแกรมตรวจตัวสะกดในแอป ที่มีการกำหนดออบเจ็กต์เซสชัน นอกจากนี้คุณยังเพิ่ม กิจกรรมที่ไม่บังคับในแอปซึ่งควบคุมการตั้งค่าต่างๆ เพิ่มไฟล์ข้อมูลเมตา XML ที่อธิบายบริการตรวจสอบตัวสะกด และเพิ่มองค์ประกอบที่เหมาะสมลงใน ไฟล์ Manifest
ชั้นเรียนเครื่องตรวจตัวสะกด
กำหนดบริการและออบเจ็กต์เซสชันด้วยคลาสต่อไปนี้
-
- คลาสย่อยของ
SpellCheckerServiceSpellCheckerServiceจะใช้ทั้งServiceและอินเทอร์เฟซเฟรมเวิร์กของโปรแกรมตรวจตัวสะกด ภายในคลาสย่อย ให้ใช้วิธีการต่อไปนี้createSession()- เมธอดจากโรงงานที่ส่งคืน
SpellCheckerService.Sessionจากไคลเอ็นต์ที่ ต้องการตรวจสอบการสะกด
- คลาสย่อยของ
-
- การใช้งาน
SpellCheckerService.Session- ออบเจ็กต์ที่บริการโปรแกรมตรวจตัวสะกดมีให้ไคลเอ็นต์เพื่อให้ ส่งข้อความไปที่โปรแกรมตรวจตัวสะกดและรับคำแนะนำ ภายใน ให้ใช้วิธีการต่อไปนี้
onCreate()- โทรโดยระบบเพื่อตอบกลับ
createSession()ในวิธีนี้ คุณสามารถเริ่มต้น ออบเจ็กต์SpellCheckerService.Sessionตาม ภาษาปัจจุบันและรายละเอียดอื่นๆ onGetSentenceSuggestionsMultiple()- ดำเนินการตรวจสอบการสะกดจริง เมธอดนี้จะแสดงอาร์เรย์ของ
SentenceSuggestionsInfoซึ่งมีคำแนะนำสำหรับประโยคที่ส่งมายัง
หรือคุณสามารถติดตั้งใช้งาน
onCancel(), ซึ่งจัดการคำขอยกเลิกการตรวจตัวสะกดonGetSuggestions(), ซึ่งจัดการคำขอแนะนำคำ หรือonGetSuggestionsMultiple(), ซึ่งจัดการคำขอคำแนะนำคำหลายๆ คำ - การใช้งาน
ไฟล์ Manifest และข้อมูลเมตาของเครื่องมือตรวจตัวสะกด
นอกจากโค้ดแล้ว โปรดเตรียมไฟล์ Manifest และข้อมูลเมตาที่เหมาะสม ของโปรแกรมตรวจตัวสะกด
ไฟล์ Manifest จะกำหนดแอป บริการ และกิจกรรมสำหรับ ควบคุมการตั้งค่า ดังที่แสดงในตัวอย่างต่อไปนี้
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.samplespellc>hecke<rservice" application @ android:labe>l="s<tring/app_name" servi@ce android:label="string/app_name" android:name=".SampleSpellCheckerService" android:>permission=&q<uot;android.pe>rmission.BIND_TEX<T_SERVICE" intent-filter action andr>oid:name=&quo<t;android.serv>ice.textservic<e.SpellCheckerService" / /intent-filter meta-data android:@name="android.>view.text<service.>scs" < android:resource=&qu@ot;xml/spellchecker" / /service activity andro>id:label=&quo<t;string/sampl>e_settings" < android:name="SpellCheckerSetting>sActivity&quo<t; > intent-<filter > < >span>act<ion andro>id: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" andro@id:label="string/spellchecker_name" android:settingsActivity="com.example.Spel>lChec<kerSettingsActivity" subty@pe android:label="string/subtype_generic" > < android:subtypeLocale="en” @ / subtype android:label="string/subtype_gen>e<ric" > android:subtypeLocale="fr” / /spell-checker
ข้อมูลเมตาจะระบุกิจกรรมที่เครื่องตรวจตัวสะกดใช้เพื่อควบคุม การตั้งค่า และยังกำหนดประเภทย่อยให้กับโปรแกรมตรวจตัวสะกดด้วย ในกรณีนี้ ค่า ประเภทย่อยจะกำหนดภาษาที่โปรแกรมตรวจตัวสะกดสามารถจัดการได้
เข้าถึงบริการเครื่องตรวจตัวสะกดจากไคลเอ็นต์
แอปที่ใช้
TextView และ
วันที่ EditText
การดูจะได้ประโยชน์จากการตรวจสอบตัวสะกดโดยอัตโนมัติ เนื่องจากTextView
จะใช้เครื่องตรวจตัวสะกดโดยอัตโนมัติ:
EditText
อย่างไรก็ตาม คุณอาจต้องการโต้ตอบโดยตรงกับบริการเครื่องตรวจตัวสะกดใน กรณีอื่นๆ แผนภาพต่อไปนี้แสดงขั้นตอนของการควบคุมสำหรับการโต้ตอบ ด้วยบริการตรวจสอบการสะกด:
ละติน เครื่องมือแก้ไขวิธีการป้อนข้อมูลในโครงการโอเพนซอร์ส Android มีตัวอย่างของ การตรวจสอบการสะกด