แพลตฟอร์ม Android มีเฟรมเวิร์กเครื่องตรวจตัวสะกดที่ช่วยให้คุณ ใช้และเข้าถึงการตรวจตัวสะกดในแอป เฟรมเวิร์กนี้เป็นหนึ่งใน Text Service API
หากต้องการใช้เฟรมเวิร์กในแอป คุณจะต้องสร้างบริการ Android ที่ จะสร้างออบเจ็กต์เซสชันของเครื่องมือตรวจตัวสะกด โดยอิงจากข้อความที่คุณให้ไว้ ออบเจ็กต์เซสชันจะแสดงคำแนะนำการสะกดคำที่สร้างโดยการสะกด เครื่องมือตรวจสอบ
วงจรเครื่องตรวจตัวสะกด
แผนภาพต่อไปนี้แสดงวงจรของบริการโปรแกรมตรวจตัวสะกด
หากต้องการเริ่มตรวจตัวสะกด แอปจะเริ่มนำตัวสะกดดังกล่าวมาใช้ ของบริการตรวจสอบ ไคลเอ็นต์ในแอปของคุณ เช่น กิจกรรมหรือ UI แต่ละรายการ ให้ส่งคำขอเซสชันโปรแกรมตรวจตัวสะกดจากบริการ จากนั้นจึงใช้เซสชัน เพื่อรับคำแนะนำเกี่ยวกับข้อความ หากลูกค้าสิ้นสุดการดำเนินการ ระบบจะปิด เซสชันเครื่องตรวจตัวสะกด แอปของคุณสามารถปิดตัวสะกดได้หากจำเป็น เครื่องมือตรวจสอบบริการได้ทุกเมื่อ
ใช้บริการเครื่องตรวจตัวสะกด
เพิ่มบริการโปรแกรมตรวจตัวสะกดเพื่อใช้เฟรมเวิร์กโปรแกรมตรวจตัวสะกดในแอป ที่มีการกำหนดออบเจ็กต์เซสชัน นอกจากนี้คุณยังเพิ่ม กิจกรรมที่ไม่บังคับในแอปซึ่งควบคุมการตั้งค่าต่างๆ เพิ่มไฟล์ข้อมูลเมตา XML ที่อธิบายบริการตรวจสอบตัวสะกด และเพิ่มองค์ประกอบที่เหมาะสมลงใน ไฟล์ Manifest
ชั้นเรียนเครื่องตรวจตัวสะกด
กำหนดบริการและออบเจ็กต์เซสชันด้วยคลาสต่อไปนี้
-
- คลาสย่อยของ
SpellCheckerService
SpellCheckerService
จะใช้ทั้ง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.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 มีตัวอย่างของ การตรวจสอบการสะกด