Flo*_*ers 6 android key-events keyevent android-input-method
我无法弄清楚如何使用Android发送元键(例如CTRL)和键码(例如用于RETURN)的组合(我使用API级别11 =版本3.0).
KeyEvent类的文档提到了诸如META_CTRL_ON之类的常量,并且还支持元键的键码常量(例如KEYCODE_CTRL_LEFT).
我正在使用Javascript Key Event Tester测试输入法编辑器(IME)生成的输出.顺便说一句,我的目标是开发一个软件键盘.
如果我理解正确的文件,这将足以执行以下代码发送CTRL键唯一:
this.sendDownUpKeyEvents(KeyEvent.KEYCODE_CTRL_RIGHT);
Run Code Online (Sandbox Code Playgroud)
但是当针对Javascript Key Event Tester(见上文)执行此操作时,没有任何反应.
因此,我需要了解如何仅发送元密钥以及将元密钥与另一个密钥组合发送.我也尝试了以下发送SHIFT + ENTER(一个具体的例子):
private void _sendShiftEnter() {
this.sendDownKeyEvent(KeyEvent.KEYCODE_SHIFT_LEFT);
final long eventTime = SystemClock.uptimeMillis();
this.getCurrentInputConnection().sendKeyEvent(
new KeyEvent(
eventTime, // The time (in uptimeMillis()) at which this key code originally went down.
eventTime, // The time (in uptimeMillis()) at which this event happened.
KeyEvent.ACTION_DOWN, // Action code: either ACTION_DOWN, ACTION_UP, or ACTION_MULTIPLE.
KeyEvent.KEYCODE_ENTER, // The key code.
0, // A repeat count for down events (> 0 if this is after the initial down) or event count for multiple events.
KeyEvent.META_SHIFT_ON, // Flags indicating which meta keys are currently pressed.
0, // The device ID that generated the key event.
0, // Raw device scan code of the event.
KeyEvent.FLAG_SOFT_KEYBOARD | KeyEvent.FLAG_KEEP_TOUCH_MODE, // The flags for this key event.
InputDevice.SOURCE_KEYBOARD // The input source such as SOURCE_KEYBOARD.
)
);
}
Run Code Online (Sandbox Code Playgroud)
同样的问题也出现在这里:唯一识别的键是ENTER.
我已经在互联网上搜索了几个小时的例子,如何使用带有元键和/或组合键的KeyEvent类,但是找不到至少一个代码示例.
总而言之:有没有人有使用KeyEvent类的经验,可以演示如何通过Android API发送一个简单的键组合(例如SHIFT + ENTER)?
先感谢您!
| 归档时间: |
|
| 查看次数: |
3368 次 |
| 最近记录: |