拼写检查器框架

Android平台提供了一个拼写检查器的框架,来方便你在你的应用中实现并使用拼写检查。这个框架是Android平台提供的文字服务API之一。

要在你的应用中使用该框架,你需要创建一个特殊的AndroidService来生成一个拼写检查器会话对象。这个会话对象会基于你提供的文字,来返回拼写检查器生成的拼写建议。

以下的图表显示了拼写检查器服务的生命周期:

图1.拼写检查器服务的生命周期。

为了初始化拼写检查,你的应用必须实现它自己的拼写检查器服务。你应用中的客户端,比如activity,或是独立的UI元素,需要从服务中获取一个拼写检查器会话,然后使用该会话为文本获取拼写建议。当一个客户端停止它的活动时,它结束自己的会话。你的应用可以在必要时,随时关闭拼写检查器服务。

为了在你的应用中使用拼写检查器框架,你需要添加一个包含会话对象实现的拼写检查器服务组件。你也可以为你的应用增加一个可选的activity来控制设置。你也必须添加一个元数据xml文件来描述拼写检查器服务,并在manifest文件中增加适当的元素。

拼写检查类。

用以下的类来定义服务和会话对象:

注意:你必须把拼写检查设为异步和线程安全的。一个拼写检查器可能被在不同核心上的不同的线程同时调用。SpellCheckerService 和 SpellCheckerService.Session自动实现了上述要求。

拼写检查器的声明和元数据

除了代码以外,你需要为拼写检查器提供合适的manifest文件和元数据文件。

mainifestt文件定义了应用,服务,以及用于设置的活动,如下示: 1 2 3 4 5 6 7 8 9 10 11 12 13

注意想要使用该服务的组件需要使用BIND_TEXT_SERVICE的许可来确保系统绑定该服务。该服务的定义中还确定了spellchecker.xml元数据文件,这将在下一节给出。

元数据文件spellchecker.xml的内容如下:

元数据里确定了拼写检查器用于控制设置的activity。它还定义了拼写检查器的子类;在这种情况下,子类定义了拼写检查器适用的地区。

使用TextView视图应用自动获取拼写检查,因为TextView会自动使用一个拼写检查器。如下截图所示:

图2.TextView中的拼写检查

然而在其它情况下,你可能也想要直接与拼写检查器服务进行交流。如下图表是直接与拼写检查器交流的控制流程:

图3.与一个拼写检查器服务交互。

Spell Checker Service例子应用,将教你如何与一个拼写检查服务进行交互。Android Open Source Project里的LatinIME输入法编辑器里也有一个拼写检查的例子。

拼写检查工具是android,Android基础知识之拼写检查框架相关推荐

  1. android培训总结范文,android培训基础知识总结

    android培训基础知识总结,有需要的朋友可以参考下. android培训之1. Android的四大组件是哪些,它们的作用? Activity:Activity是Android程序与用户交互的窗口 ...

  2. android系统知识,Android系统基础知识百科

    Android系统基础知识百科 2015-12-16 17:58:31 954浏览 Android系统作为一款功能强大的移动计算平台,在保持开放性的同时,必须提供强健的安全保障.Android的系统安 ...

  3. Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介

    1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...

  4. Appium+python自动化(十五)- Android 这些基础知识,你知多少???(超详解)...

    简介 前边具体操作和实战已经讲解和分享了很多了,但是一些android的一些基础知识,你又知道多少了,你都掌握了吗?这篇就由宏哥给小伙伴们既是一个分享,又是对前边的一次总结.为什么要对这些做一个简单的 ...

  5. Android Systrace 基础知识(10) - Binder 和锁竞争解读

    本文是 Systrace 系列文章的第十篇,主要是对 Systrace 中的 Binder 和锁信息进行简单介绍,简单介绍了 Binder 的情况,介绍了 Systrace 中 Binder 通信的表 ...

  6. Android开发基础知识

    Android 开发 1. Android基础知识 1.1 发展历程 1.2 Android系统体系架构 Android采用分层架构: Kernel层:Android平台的基础.有线程管理和内存管理等 ...

  7. 第四章 Android WiFi基础知识

    系列文章目录 第一章 国内下载AOSP最新源码的方法 第二章 下载AOSP WiFi相关的代码 第三章 将源码导入Android Studio(无需编译idegen) 文章目录 系列文章目录 前言 一 ...

  8. Android Systrace 基础知识(9)-MainThread 和 RenderThread 解读

    本文是 Systrace 系列文章的第九篇,主要是是介绍 Android App 中的 MainThread 和 RenderThread,也就是大家熟悉的「主线程」和「渲染线程」.文章会从 Syst ...

  9. Android 这些基础知识,你知多少?

    android的一些基础知识,你又知道多少了,你都掌握了吗? QA:"那个谁谁谁,我刚刚按照上一次那样操作这款款APP,我死活是跑不起测试脚本了.(内心独白:我去,这个奇怪的问题,一定是他给 ...

  10. Android.mk基础知识

    一.基础知识 1.Android.mk文件可以将源码打包成模块,模块可以是apk,jar包,c/c++应用程序,静态库和动态库.动态库可以被以到应用程序包apk,静态库可以被连接入动态库. 2.And ...

最新文章

  1. 通过IIS操作修改服务器文件没有权限的解决办法
  2. 新技能get!判断盒子的实际大小及位置。。。
  3. apple给我的感受
  4. scp: /usr/java: Permission denied
  5. 为了实现在线库的复杂查询,你还在双写吗?
  6. 文件批量传输组件作为架包使用说明
  7. html表格怎么设置浮动,html – 表格布局和浮动左和引导网格
  8. unity3d android assets,Unity3D之Android同步方法读取streamingAssets(八十八)
  9. 单片机拼字程序怎么做_小程序商城怎么做?做一个小程序需要多少钱
  10. 还是畅通工程(prim和kruskal)
  11. MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令
  12. oracle和mysql数据实时同步_Canal 实现 Mysql数据库实时数据同步
  13. javplayer 使用教程_工程测绘CASS教程+视频讲解+插件大合集,小白3天学会绘图
  14. mysql 删除的sql语句怎么写_mysql教程删除数据sql语句用法
  15. NDT算法配准代码学习,很详细,很多不懂,一句一句解释。
  16. 一个矩阵与单位矩阵相乘等于本身吗?并且符合交换律吗?
  17. JQ使div动态拉伸,width
  18. Win10 VC++运行库集合|VC++ 2005 2008 2010 2012 2015
  19. 「我们只投这两种AI公司」, 三位局内人首次公开AI投资的技术与产业标准
  20. easyexcel导入时读不到数据_EasyExcel快速读写Excel数据

热门文章

  1. Android流量统计分析
  2. Mysql 事务锁等待时间超时
  3. 数据库系统概论练习4
  4. Android瘦身优化
  5. vue的学习笔记(15)之Promise知识讲解
  6. 网络设备设置/取消console口登陆单独密码
  7. 计算机处理器i3 i5,realme Book笔记本高清渲染图曝光 配置上搭载11代酷睿i3/i5处理器...
  8. ​云队友丨两次疫情冲击,却两次成功上市,携程是怎么做到的?
  9. 微信公众号1万粉丝流量主能赚多少钱?
  10. js html 测反应速度游戏,利用JS测试目标网站的打开响应速度