0

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

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

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

4

2 回答 2

4

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

webView.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_1));
于 2013-06-26T09:15:21.617 回答
3

在 Instrumentation 中,有发送 keycode 的 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 官网下载。

于 2013-06-24T06:38:37.477 回答