在创建自定义的Android键盘(Create Custom Keyboard in Android

2019-07-18 03:40发布

我想编写一个自定义的键盘应该在运行的Android 4.0及以上的所有设备正常工作。 所以首先我搜索网,但并没有发现有关的事情。 所以,我怎么可以创建一个应用程序,它取代了股票键盘的Android?

我想知道些什么:

  1. 是否有一个良好的教程在那里? 难道你们有示例代码?
  2. 我是否需要root来做到这一点?
  3. 什么是它背后的结构? (难道仅仅是一个服务??一个普通的活动)
  4. 是否有可能在键盘中读出的输入框?

Answer 1:

所以,我这样做了约2年,当我的工作了Swype。 你并不需要root,你只需要实现一个InputMethodService。 你可以得到文字掉大部分文本框的,但不是所有的(不是所有的编辑字段正确地履行其一半的API。与输入型INPUT_TYPE_NULL特别是什么将无法正常工作)。 为了让你会打电话inputConnection.getExtractedText文本

是warned-的API是坏的,而应用程序是碰运气,与它的工作。 一个基本的键盘很容易,但尝试做任何事情复杂,你会花很多时间。 很多工时去到大键盘



Answer 2:

所以首先我搜索网,但并没有发现有关的任何

创建输入方法被覆盖在Android开发文档 ,这是在互联网上。

难道你们有samplecode?

有一个在一个样品samples/ SDK安装目录下,如果从SDK管理器下载示例代码。 寻找SoftKeyboard

我是否需要root来做到这一点?

没有。

什么是它背后的结构? (难道仅仅是一个服务??一个普通的活动)

这是一个InputMethodService



Answer 3:

  1. 是否有一个良好的教程在那里? 难道你们有示例代码?

特此一个很好的教程:
http://code.tutsplus.com/tutorials/create-a-custom-keyboard-on-android--cms-22615

  1. 我是否需要root来做到这一点?

不,不需要root来做到这一点。

  1. 什么是它背后的结构? (难道仅仅是一个服务??一个普通的活动)

您需要使用inputMethodService ,请参阅文档 。

  1. 是否有可能在键盘中读出的输入框?

根:没有

是否有可能在键盘中读出的输入框?

对的,这是可能的。

InputConnection ic = getCurrentInputConnection();
String currentText = ic.getExtractedText(new ExtractedTextRequest(), 0).text;


文章来源: Create Custom Keyboard in Android