我無法弄清楚如何使用Android(我正在使用)發送元密鑰(例如CTRL)和密鑰組合(例如用於RETURN)的組合API等級11 =版本3.0)。通過Android API發送密鑰組合(元密鑰和密鑰代碼)
KeyEvent提到常數等META_CTRL_ON的類的文件,同時還支持用於元鍵鍵碼常數(例如KEYCODE_CTRL_LEFT)。
我正在使用Javascript Key Event Tester來測試由我的輸入法編輯器(IME)生成的輸出。順便說一句,我的目標是開發一個軟件鍵盤。
如果我理解的文檔正確的,這將足以執行以下代碼發送CTRL鍵只有:
this.sendDownUpKeyEvents(KeyEvent.KEYCODE_CTRL_RIGHT);
但是,當這對JavaScript的關鍵事件測試執行(見上文), 什麼都沒發生。
所以我需要知道如何發送元鍵只有和發送元鍵與另一個鍵的組合。我也試過以下發送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.
)
);
}
與上述同樣的問題發生在這裏,太:唯一公認的關鍵是Enter。
我已經在Internet上搜索了幾個小時的例子,如何使用帶有元鍵和/或鍵組合的類,但是找不到至少一個代碼示例。
總而言之:有沒有人使用KeyEvent類,並且可以演示如何通過Android API發送簡單的鍵組合(例如SHIFT + ENTER)?
預先感謝您!