1

我在 Android 上使用数据收集终端。设置数据输入可以有两种变体(如“键盘”或“剪贴板”)。

我更新了我的项目(Android 工作室)的 gradle 依赖项。
之前compile 'com.android.support:appcompat-v7:23.0.0'
之后compile 'com.android.support:appcompat-v7:25.0.0'

设置“25.0.0”或“23.4.0”后,从扫描仪输入为“剪贴板”,不起作用。如果设置为“键盘”,就可以了。

我发现设备发送“onKey”组合 MENU + V(更准确地说是“KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_MENU”和“KeyEvent.ACTION_UP,KeyEvent.KEYCODE_V”)。

我试图重现关键事件。

ClipboardManager clipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.setText("999999");

BaseInputConnection mInputConnection = new BaseInputConnection(editText, true);
mInputConnection.sendKeyEvent(new KeyEvent(android.os.SystemClock.uptimeMillis(), android.os.SystemClock.uptimeMillis(), KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MENU, 0));
mInputConnection.sendKeyEvent(new KeyEvent(android.os.SystemClock.uptimeMillis(), android.os.SystemClock.uptimeMillis(), KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_V, 0));
mInputConnection.sendKeyEvent(new KeyEvent(android.os.SystemClock.uptimeMillis(), android.os.SystemClock.uptimeMillis(), KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MENU, 0));
mInputConnection.sendKeyEvent(new KeyEvent(android.os.SystemClock.uptimeMillis(),android.os.SystemClock.uptimeMillis(),KeyEvent.ACTION_UP, KeyEvent.KEYCODE_V, 0));

上面的代码适用于“23.0.0”,但不适用于“25.0.0”或“23.4.0”。

带有“23.0.0”的关键事件:82-DOWN、82-UP、50-UP

在“23.4.0”及以上的关键事件上:82-DOWN、82-UP、50-DOWN、50-UP

我想知道这是否可以通过什么样的设置来解决,或者现在我必须自己控制这个组合?

4

0 回答 0