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的内容,但发现没有任何效果.
我认为有一个解决方案,因为对讲可以模拟物理D-Pad(http://code.google.com/p/eyes-free/source/browse/trunk/ime/latinime/src/com/googlecode/eyesfree /inputmethod/latin/LatinIME.java)
我找到了聪明的解决方案(例如,向下):
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)
这就是全部,一个内部算法,用于在您选择的方向上查找下一个元素