開發(fā)中,遇到了需要模擬鍵盤事件的問題。在這里做一個簡單總結(jié)。
使用模擬鍵盤事件,需要知道對用按鍵的對照表。
參考這個博客
使用Instrumentation類操作
Instrumentation inst = new Instrumentation();
try {
inst.sendKeyDownUpSync(66); // 這個66 映射碼 標識 回車鍵。
} catch (Exception e) {
Log.e("tag", "事件出現(xiàn)異常" + e.getMessage());
}
try {
//這個事件代表 Shift + tab 組合鍵。
long downTime = SystemClock.uptimeMillis();
long eventTime = downTime;
inst.sendKeySync(new KeyEvent(downTime, eventTime, KeyEvent.ACTION_DOWN, 61, 0, KeyEvent.META_SHIFT_ON));
inst.sendKeySync(new KeyEvent(downTime, eventTime, KeyEvent.ACTION_UP, 61, 0, KeyEvent.META_SHIFT_ON));
} catch (Exception e) {
Log.e("tag", "事件出現(xiàn)異常" + e.getMessage());
}
還有一種方式
try
{
String keyCommand = "input keyevent " + keycode;
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(keyCommand);
} catch (IOException e)
{
e.printStackTrace();
}