เฟรมเวิร์กเครื่องตรวจตัวสะกด

แพลตฟอร์ม Android มีเฟรมเวิร์กเครื่องตรวจตัวสะกดที่ช่วยให้คุณ ใช้และเข้าถึงการตรวจตัวสะกดในแอป เฟรมเวิร์กนี้เป็นหนึ่งใน Text Service API

หากต้องการใช้เฟรมเวิร์กในแอป คุณจะต้องสร้างบริการ Android ที่ จะสร้างออบเจ็กต์เซสชันของเครื่องมือตรวจตัวสะกด โดยอิงจากข้อความที่คุณให้ไว้ ออบเจ็กต์เซสชันจะแสดงคำแนะนำการสะกดคำที่สร้างโดยการสะกด เครื่องมือตรวจสอบ

วงจรเครื่องตรวจตัวสะกด

แผนภาพต่อไปนี้แสดงวงจรของบริการโปรแกรมตรวจตัวสะกด

วันที่ รูปภาพแสดงวงจรสำหรับบริการตรวจตัวสะกด
รูปที่ 1 บริการตรวจตัวสะกด ใหม่

หากต้องการเริ่มตรวจตัวสะกด แอปจะเริ่มนำตัวสะกดดังกล่าวมาใช้ ของบริการตรวจสอบ ไคลเอ็นต์ในแอปของคุณ เช่น กิจกรรมหรือ 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 จะใช้เครื่องตรวจตัวสะกดโดยอัตโนมัติ:

วันที่ รูปภาพแสดงวิธีเปิดใช้เครื่องตรวจตัวสะกดโดยอัตโนมัติใน EditText
รูปที่ 2 การตรวจตัวสะกดใน EditText

อย่างไรก็ตาม คุณอาจต้องการโต้ตอบโดยตรงกับบริการเครื่องตรวจตัวสะกดใน กรณีอื่นๆ แผนภาพต่อไปนี้แสดงขั้นตอนของการควบคุมสำหรับการโต้ตอบ ด้วยบริการตรวจสอบการสะกด:

วันที่ รูปภาพแสดงแผนภาพการโต้ตอบกับบริการโปรแกรมตรวจตัวสะกด
รูปที่ 3 การโต้ตอบกับโปรแกรมตรวจตัวสะกด service.

ละติน เครื่องมือแก้ไขวิธีการป้อนข้อมูลในโครงการโอเพนซอร์ส Android มีตัวอย่างของ การตรวจสอบการสะกด