public void forwardKeyEvent(int code, boolean press) { InputConnection connection = getCurrentInputConnection(); if (connection != null) { int action = press ? KeyEvent.ACTION_DOWN : KeyEvent.ACTION_UP; KeyEvent event = new KeyEvent(action, code); event = KeyEvent.changeFlags(event, KeyEvent.FLAG_SOFT_KEYBOARD); if (connection.sendKeyEvent(event)) { logKeyEvent(code, press, "forwarded"); } else { logKeyEvent(code, press, "not forwarded"); } } else { logKeyEvent(code, press, "unforwardable"); } }