Android 平台提供了拼写检查工具框架,可让您在应用中实现和使用拼写检查功能。该框架是 Android 平台提供的文本服务 API 之一。
如需在您的应用中使用该框架,您需要创建一个特殊类型的 Android 服务,该服务可生成拼写检查工具会话对象。根据您提供的文本,该会话对象会返回拼写检查工具生成的拼写建议。
拼写检查工具生命周期
下图显示了拼写检查工具服务的生命周期:
图 1. 拼写检查工具服务的生命周期。
如需启动拼写检查,您的应用会开始实现拼写检查工具服务。您应用中的客户端(例如,Activity 或各个界面元素)会从该服务请求拼写检查工具会话,然后使用该会话获取文本建议。当客户端终止其操作时,它会关闭其拼写检查工具会话。如有必要,您的应用可随时关闭拼写检查工具服务。
实现拼写检查工具服务
如需在您的应用中使用拼写检查工具框架,请添加包含会话对象定义的拼写检查工具服务组件。您还可以向应用添加可控制设置的可选 Activity。此外,您还必须添加描述拼写检查工具服务的 XML 元数据文件,并向清单文件添加适当的元素。
拼写检查工具类
使用以下类定义服务和会话对象:
注意:您必须以异步和线程安全的方式实现拼写检查的所有方面。拼写检查工具可以由在不同核心上运行的不同线程同时调用。
拼写检查工具清单和元数据
除了代码之外,您还需要为拼写检查工具提供适当的清单文件和元数据文件。
相应的清单文件定义了用于控制设置的应用、服务和 Activity,如以下代码段所示:
package="com.example.android.samplespellcheckerservice" >
android:label="@string/app_name" >
android:label="@string/app_name"
android:name=".SampleSpellCheckerService"
android:permission="android.permission.BIND_TEXT_SERVICE" >
android:name="android.view.textservice.scs"
android:resource="@xml/spellchecker" />
android:label="@string/sample_settings"
android:name="SpellCheckerSettingsActivity" >
请注意,想要使用该服务的组件必须请求 spellchecker.xml 元数据文件,这将在下一部分中介绍。
相应的元数据文件 spellchecker.xml 包含以下 XML:
android:label="@string/spellchecker_name"
android:settingsActivity="com.example.SpellCheckerSettingsActivity">
android:label="@string/subtype_generic"
android:subtypeLocale="en”
/>
android:label="@string/subtype_generic"
android:subtypeLocale="fr”
/>
上述元数据指定了拼写检查工具用于控制设置的 Activity。它还定义了拼写检查工具的子类型;在本示例中,相应的子类型定义了拼写检查工具可以处理的语言区域。
从客户端访问拼写检查工具服务
使用
图 2. TextView 中的拼写检查。
不过,在其他情况下,不妨直接与拼写检查工具服务进行互动。下图显示了与拼写检查工具服务互动的控制流程:
图 3. 与拼写检查工具服务互动。