Android 平台提供拼字檢查工具架構 在應用程式中實作及存取拼字檢查功能架構是 文字服務 API。
如要在應用程式中使用這個架構,您必須建立 Android 服務, 會產生拼字檢查工具 session 物件。根據您提供的文字 工作階段物件會傳回拼字檢查產生的拼字建議 檢查工具
拼字檢查工具生命週期
下圖顯示拼字檢查工具服務的生命週期:
![圖片:顯示拼字檢查工具服務的生命週期](https://developer.android.com/static/resources/articles/images/spellcheck_lifecycle.png?authuser=0000&hl=zh-tw)
為了啟動拼字檢查功能,應用程式會開始實作拼字檢查 檢查服務應用程式中的用戶端,例如活動或個別 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 如何自動啟用拼字檢查工具](https://developer.android.com/static/images/ui/spellchecker_edittext.png?authuser=0000&hl=zh-tw)
EditText
。
不過,我們建議您在 在其他情況下。下圖顯示互動的控制流程 提供的拼字檢查工具服務:
![圖片:顯示與拼字檢查工具服務互動的圖表](https://developer.android.com/static/resources/articles/images/spellcheck_client_flow.png?authuser=0000&hl=zh-tw)
拉丁文 Android 開放原始碼計畫中的輸入法編輯器包含 拼字檢查