这个问题很简单。我需要模拟dpad事件(UP,DOWN,RIGHT,LEFT,CENTER)来在我的GUI中导航,该GUI由许多按钮和其他元素组成。使用模拟器D-Pad,我可以通过GUI进行导航而无需编写代码。但是如何以编程方式实现这一点呢?
我已经尝试了很多次,但都没有成功:
- KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_DPAD_LEFT); View.dispatchKeyEvent(event); 没有任何反应(焦点应该向右移动一个元素)。
- 我还阅读了很多关于windowManager.injectKeyEvent的内容,但没有找到有效的方法。
- Instrumentation也可以帮助模拟按键事件,但更多用于测试,而不适用于应用程序本身。
我认为有解决方案,因为Talkback可以模拟物理D-Pad。 (http://code.google.com/p/eyes-free/source/browse/trunk/ime/latinime/src/com/googlecode/eyesfree/inputmethod/latin/LatinIME.java)
我已经尝试了很多次,但都没有成功:
- KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_DPAD_LEFT); View.dispatchKeyEvent(event); 没有任何反应(焦点应该向右移动一个元素)。
- 我还阅读了很多关于windowManager.injectKeyEvent的内容,但没有找到有效的方法。
- Instrumentation也可以帮助模拟按键事件,但更多用于测试,而不适用于应用程序本身。
我认为有解决方案,因为Talkback可以模拟物理D-Pad。 (http://code.google.com/p/eyes-free/source/browse/trunk/ime/latinime/src/com/googlecode/eyesfree/inputmethod/latin/LatinIME.java)