Spelling Checker Framework
Android平台提供了一个拼写检查器框架,可以让你实现,并在您的应用程序访问拼写检查。该框架是Android平台所提供的文本服务API之一。
要使用该框架在你的应用程序,您创建生成一个拼写检查器会话对象的一种特殊类型的Android服务。根据您提供的文本,会话对象返回拼写检查器生成的拼写建议。
拼写检查器生命周期
下图显示了拼写检查器服务的生命周期:
图1.拼写检查器服务的生命周期。
要启动拼写检查,您的应用程序开始执行情况的拼写检查服务。客户在你的应用程序,如活动或个人的UI元素,从服务要求拼写检查器会话,然后使用会话来获取文本的建议。作为客户端终止,它将关闭其拼写检查器会话。如果需要的话,你的应用程序可以关闭在任何时候拼写检查服务。
实现一个拼写检查服务
要使用拼写检查器框架在你的应用程序,添加一个拼写检查器服务组件包括会话对象定义。您还可以添加到您的应用程序,控制设置可选的活动。你还必须添加描述拼写检查器服务的XML元数据文件,并添加相应的元素,你的清单文件。
拼写检查班
定义与以下类的服务和会话对象:
SpellCheckerService的子类
该SpellCheckerService同时实现了服务类和拼写检查器框架接口。在你的子类,则必须实现以下方法:
了createSession()
工厂方法返回一个对象SpellCheckerService.Session给想要做拼写检查的客户端。
见拼写检查器服务的示例应用程序,以了解更多有关实施这一类。
SpellCheckerService.Session的实施
拼写检查器的服务提供给客户的对象,让他们通过文字,拼写检查和接受建议。在这个类中,必须实现以下方法:
的onCreate()
由系统响应于了createSession()调用。在这种方法中,可以初始化基于当前的区域等等的SpellCheckerService.Session对象。
onGetSentenceSuggestionsMultiple()
执行实际的拼写检查。这个方法返回一个包含传递给它的判决意见SentenceSuggestionsInfo的数组。
或者,你可以实现onCancel(),其处理请求取消拼写检查,onGetSuggestions(),它可以处理一个字的建议要求,或onGetSuggestionsMultiple(),它处理字的建议请求批次。
见拼写检查器客户端示例应用程序,以了解更多有关实施这一类。
注意:您必须实施检验的异步和线程安全的法术的所有方面。拼写检查器可以同时通过在不同内核上运行不同的线程调用。该SpellCheckerService和SpellCheckerService.Session自动照顾这一点。
拼写检查清单和元数据
除了代码,您需要提供相应的清单文件和拼写检查的元数据文件。
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文字服务组件,以确保只有系统绑定到服务。服务定义还指定spellchecker.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>元数据指定拼写检查器使用,用于控制设置的活动。它还定义了拼写检查亚型;在这种情况下,子类型定义拼写检查器可以处理的语言环境。