拼字檢查工具架構

Android 平台提供拼字檢查工具架構 在應用程式中實作及存取拼字檢查功能架構是 文字服務 API。

如要在應用程式中使用這個架構,您必須建立 Android 服務, 會產生拼字檢查工具 session 物件。根據您提供的文字 工作階段物件會傳回拼字檢查產生的拼字建議 檢查工具

拼字檢查工具生命週期

下圖顯示拼字檢查工具服務的生命週期:

圖片:顯示拼字檢查工具服務的生命週期
圖 1. 拼字檢查工具服務 生命週期

為了啟動拼字檢查功能,應用程式會開始實作拼字檢查 檢查服務應用程式中的用戶端,例如活動或個別 UI 元素,向服務要求拼字檢查工具工作階段,然後使用 取得文字建議用戶端終止作業後, 的拼字檢查工具如有需要,應用程式可以關閉拼字檢查功能 檢查服務。

實作拼字檢查工具服務

如要在應用程式中使用拼字檢查工具架構,請新增拼字檢查工具服務 元件,其中含有工作階段物件定義的。並新增 選擇性活動,以便控制設定。新增 XML 中繼資料檔案 ,然後將適當的元素加入 資訊清單檔案

拼字檢查工具類別

使用下列類別定義服務和工作階段物件:

  • 的子類別 SpellCheckerService
    SpellCheckerService 會同時導入 Service 以及拼字檢查工具架構介面在子類別中 實作以下方法:
    createSession()
    SpellCheckerService.Session 物件新增至用戶端 想要檢查拼字。
  • 實作 SpellCheckerService.Session
    拼字檢查工具服務提供給用戶端的物件 應用程式會將文字傳遞至拼字檢查工具並取得建議。在 類別,請實作下列方法:
    onCreate()
    由系統呼叫以回應 createSession()。在此方法中 通知 SpellCheckerService.Session 物件 目前的語言代碼和其他詳細資料
    onGetSentenceSuggestionsMultiple()
    實際執行拼字檢查。這個方法會傳回 SentenceSuggestionsInfo 包含所傳遞語句的建議

    您也可以選擇實作 onCancel(), 會處理取消拼字檢查的要求 onGetSuggestions(), 處理字詞建議要求或 onGetSuggestionsMultiple(), 這個 API 可處理批次字詞建議要求

  • ,瞭解如何調查及移除這項存取權。

拼字檢查工具資訊清單和中繼資料

除了程式碼之外,請提供適當的資訊清單檔案和中繼資料 檔案。

資訊清單檔案會定義應用程式、服務和 控制設定,如以下範例所示:

<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. 與拼字檢查工具互動 課程中也會快速介紹 Memorystore 這是 Google Cloud 的全代管 Redis 服務

拉丁文 Android 開放原始碼計畫中的輸入法編輯器包含 拼字檢查