开发中,遇到了需要模拟键盘事件的问题。在这里做一个简单总结。
使用模拟键盘事件,需要知道对用按键的对照表。
参考这个博客
使用Instrumentation类操作
Instrumentation inst = new Instrumentation();
try {
inst.sendKeyDownUpSync(66); // 这个66 映射码 标识 回车键。
} catch (Exception e) {
Log.e("tag", "事件出现异常" + 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", "事件出现异常" + e.getMessage());
}
还有一种方式
try
{
String keyCommand = "input keyevent " + keycode;
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(keyCommand);
} catch (IOException e)
{
e.printStackTrace();
}