在Android中创build自定义键盘

我想写一个自定义的键盘应该在所有运行Android 4.0和以上的设备上工作。 所以首先我search了networking,但没有发现任何关于这个。 那么我怎样才能创build一个替代Android的股票键盘的应用程序呢?

我想知道的是:

  1. 那里有一个很好的教程吗? 你们有样品代码吗?
  2. 我需要root来做这个吗?
  3. 它背后的结构是什么? (它只是一个常规的服务活动??)
  4. 是否有可能读出键盘内的input框?

Solutions Collecting From Web of "在Android中创build自定义键盘"

所以,我在Swype上工作了大约2年。 你不需要root,你只需要实现一个InputMethodService。 您可以从大多数文本框中获取文本,但不是所有(不是所有的编辑字段都正确实现了其中一半的API,特别是inputtypes为INPUT_TYPE_NULL的任何东西都不能正常工作)。 要获取文本,您可以调用inputConnection.getExtractedText

被警告 – API是不好的,应用程序被击中,错过与它合作。 一个基本的键盘很容易,但尝试做任何复杂的事情,你会花很多时间。 大量的工作时间进入了大键盘

所以首先我search了networking,但没有发现任何关于这个

创buildinput法的方法在Internet上的Android开发者文档中有介绍。

你们有样品代码吗?

如果您从SDK Manager下载了示例代码,则在SDK安装的samples/目录中有一个示例。 找SoftKeyboard

我需要root来做这个吗?

没有。

它背后的结构是什么? (它只是一个常规的服务活动??)

这是一个InputMethodService

  1. 那里有一个很好的教程吗? 你们有样品代码吗?

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

  1. 我需要root来做这个吗?

不,根不需要这样做。

  1. 它背后的结构是什么? (它只是一个常规的服务活动??)

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

  1. 是否有可能读出键盘内的input框?

根:不

是否有可能读出键盘内的input框?

对的,这是可能的。

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