KeyEvent вставить текст из буфера обмена
Я использовал терминал сбора данных на Android. Настройка ввода данных может быть в двух вариантах (как "клавиатура" или "буфер обмена").
Я обновляю зависимости моего проекта (студия Android).
До 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-ВНИЗ, 82-UP, 50-UP
На ключевых событиях с "23.4.0" и выше: 82-ВНИЗ, 82-ВВЕРХ, 50-ВНИЗ, 50-ВВЕРХ
Интересно, может ли это быть решено какими настройками или теперь я должен сам управлять этой комбинацией?