Android:有没有办法模拟D-Pad事件(API 10)?

Nit*_*der 7 simulation android keyevent d-pad

问题很简单.我必须模拟dpad事件(UP,DOWN,RIGHT,LEFT,CENTER),以便在我的GUI中导航,其中包含许多按钮和其他元素.使用模拟器D-Pad,我可以在没有行代码的情况下导航此GUI.但是我该如何以编程方式执行此操作?

我尝试了很多但没有成功:

  • KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_DPAD_LEFT); View.dispatchKeyEvent(event); 没有任何事情发生(焦点应该将一个元素移动到右边)

  • 我也阅读了很多关于windowManager.injectKeyEvent的内容,但发现没有任何效果.

  • 而Instrumentation可以帮助模拟关键事件,但更多用于测试,而不是用于应用程序本身.

我认为有一个解决方案,因为对讲可以模拟物理D-Pad(http://code.google.com/p/eyes-free/source/browse/trunk/ime/latinime/src/com/googlecode/eyesfree /inputmethod/latin/LatinIME.java)

Nit*_*der 2

我找到了聪明的解决方案(例如,向下):

bic=new BaseInputConnection(this.getWindow().getDecorView(),false);
KeyEvent event2 = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_DOWN,0, KeyEvent.META_SYM_ON, 0, 0, KeyEvent.FLAG_VIRTUAL_HARD_KEY); 

bic.sendKeyEvent(event2);
Run Code Online (Sandbox Code Playgroud)

这就是全部,一个内部算法,用于在您选择的方向上查找下一个元素