我想编写一个自定义键盘,该键盘适用于运行Android 4.0及更高版本的所有设备。所以我首先搜索网络,但没有发现任何相关信息。那么如何创建一个取代Android的股票键盘的应用程序?
我想知道的事情:
答案 0 :(得分:19)
所以,当我在Swype工作时,我做了大约2年。您不需要root,只需要实现InputMethodService即可。您可以从大多数文本框中获取文本,但不是全部(不是所有编辑字段都正确实现了它们的一半API。特别是输入类型为INPUT_TYPE_NULL的任何文件都不能正常工作)。要获取文本,您可以调用inputConnection.getExtractedText
请注意 - API很糟糕,应用程序受到攻击并且错过使用它。一个基本的键盘很容易,但尝试做任何复杂的事情,你会花很多时间。很多工时都进入了大键盘
答案 1 :(得分:9)
所以首先我在网上搜索但没有找到任何关于那个
的信息
互联网上的the Android developer documentation涵盖了创建输入法的方法。
你们有样本代码吗?
如果您从SDK Manager下载了示例代码,则SDK安装的samples/
目录中有一个示例。寻找SoftKeyboard
。
我需要root才能这样做吗?
没有
它背后的结构是什么? (它只是一个带有服务的常规活动吗?)
答案 2 :(得分:2)
- 那里有一个很好的教程吗?你们有样例代码吗?
醇>
这是一个很好的教程:
http://code.tutsplus.com/tutorials/create-a-custom-keyboard-on-android--cms-22615
- 我需要root才能这样做吗?
醇>
不,root不需要这样做。
- 它背后的结构是什么? (它只是一个带服务的常规活动吗?)
醇>
您需要使用inputMethodService
,请参阅documentation。
- 是否可以读出键盘内的输入框?
醇>
root:否
是否可以读出键盘内的输入框?
是的,这是可能的。
InputConnection ic = getCurrentInputConnection();
String currentText = ic.getExtractedText(new ExtractedTextRequest(), 0).text;