我想编写一个自定义键盘,它应该适用于所有运行 Android 4.0 及更高版本的设备。所以首先我搜索了网络,但没有找到任何相关信息。那么如何创建一个应用程序来替代 Android 的普通键盘呢?
我想知道的:
- 那里有很好的教程吗?你们有示例代码吗?
- 我需要root才能做到这一点吗?
- 它背后的结构是什么?(它只是一个带有服务的常规活动吗??)
- 是否可以读出键盘内的输入框?
我想编写一个自定义键盘,它应该适用于所有运行 Android 4.0 及更高版本的设备。所以首先我搜索了网络,但没有找到任何相关信息。那么如何创建一个应用程序来替代 Android 的普通键盘呢?
我想知道的:
所以,当我在 Swype 工作时,我这样做了大约 2 年。你不需要root,你只需要实现一个InputMethodService。您可以从大多数文本框中获取文本,但不是全部(并非所有编辑字段都正确实现了它们的一半 API。尤其是输入类型为 INPUT_TYPE_NULL 的任何内容都无法正常工作)。要获取文本,您将调用 inputConnection.getExtractedText
请注意 - API 很糟糕,应用程序在使用它时会受到打击。一个基本的键盘很简单,但是尝试做任何复杂的事情,你会花费很多时间。大键盘投入了大量工时
所以首先我搜索了网络,但没有找到任何相关信息
在 Internet 上的 Android 开发人员文档中介绍了创建输入法。
你们有示例代码吗?
samples/
如果您从 SDK 管理器下载了示例代码,那么您的 SDK 安装目录中有一个示例。寻找SoftKeyboard
。
我需要root才能做到这一点吗?
不。
它背后的结构是什么?(它只是一个带有服务的常规活动吗??)
- 那里有很好的教程吗?你们有示例代码吗?
这是一个很好的教程:
http ://code.tutsplus.com/tutorials/create-a-custom-keyboard-on-android--cms-22615
- 我需要root才能做到这一点吗?
不,不需要 root 来执行此操作。
- 它背后的结构是什么?(它只是一个带有服务的常规活动吗??)
您需要使用inputMethodService
,请参阅文档。
- 是否可以读出键盘内的输入框?
根:没有
是否可以读出键盘内的输入框?
是的,有可能。
InputConnection ic = getCurrentInputConnection();
String currentText = ic.getExtractedText(new ExtractedTextRequest(), 0).text;