我正在使用类似的代码
uiDevice.pressKeyCode(KeyEvent.KEYCODE_ENTER);
而且我的应用程序一直在触发两个事件。我可以说,回车键链接到一个服务,并且该服务被调用了两次。
public boolean sendKey(int keyCode, int metaState) {
...
KeyEvent downEvent = KeyEvent.obtain(eventTime, eventTime, KeyEvent.ACTION_DOWN,
keyCode, 0, metaState, KeyCharacterMap.VIRTUAL_KEYBOARD, 0, 0,
InputDevice.SOURCE_KEYBOARD, null);
if (injectEventSync(downEvent)) {
KeyEvent upEvent = KeyEvent.obtain(eventTime, eventTime, KeyEvent.ACTION_UP,
keyCode, 0, metaState, KeyCharacterMap.VIRTUAL_KEYBOARD, 0, 0,
InputDevice.SOURCE_KEYBOARD, null);
if(injectEventSync(upEvent)) {
return true;
}
}
return false;
}
从表面上看,这意味着我的 KeyEvent.KEYCODE_ENTER 键码被发送到设备两次,一次用于 action_up,一次用于 action_down。
有谁知道解决这个问题的方法,遇到过类似的问题,可以确认我上面的逻辑是正确的吗?