在Android中模拟键盘事件

时间:2013-05-29 22:29:36

标签: android

我有一个项目,我正在尝试触发键盘事件。我正在使用Instrumentation Class,它在模拟器上工作得很好,但是当我在我的设备上启动它时,调用不起作用,有什么方法可以使它工作吗?

另外,我在网上搜索,我发现了一些关于IWindowManager和内部API的帖子,我完全理解使用它们的风险,但我的项目是一项研究,不打算发表,所以我不喜欢如果他们可以解决我的问题,请介意在我的项目中使用这些API,但问题是我找不到包含这些类的JAR。

TLDR:我需要一个可以帮助我在我的Android设备上触发键盘事件的解决方案,任何想法都值得赞赏

2 个答案:

答案 0 :(得分:4)

实际上,我找到了一种更简单的方法 使用Activity类或WebView类。两者都具有相同的功能。 代码看起来像这样:

webView.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_1));

答案 1 :(得分:3)

在仪器中,有api发送密钥代码:

getInstrumentation().sendCharacterSync(int keycode);

如果您拥有该设备的root访问权限,则可以在此处查看代码:

https://code.google.com/p/androidscreencast/source/browse/AndroidScreencastClient/src/net/srcz/android/screencast/client/ClientHandler.java ;

使用IWindowManager。 IWindowManager是android系统的一部分,你可以在android.jar中找到该类,源代码可以从android官方网站下载。