android send key event
16lz
2021-01-24
1.input 命令
用法:
Usage: input [<source>] <command> [<arg>...]
其中,source有:
mouse,keyboard,joystick,touchnavigation
touchpad,trackball,stylus,dpad,touchscreen,gamepad
默认的souces和commands:
text <string> (Default: touchscreen) keyevent [--longpress] <key code number or name> ... (Default: keyboard) tap <x> <y> (Default: touchscreen) swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen) press (Default: trackball) roll <dx> <dy> (Default: trackball)
用法举例:发用一个MENU按键事件input keyevent 82 //发送menu按键,可以让app弹出menu菜单,menu的键值是82如果不知道keycode,也可以直接用名字:input keyevent MENU //这样也可以让app弹出menu菜单
2.使用Instrumentation发送模拟按键
public static void simulateKey(final int KeyCode) { new Thread() { @Override public void run() { try { Instrumentation inst = new Instrumentation(); inst.sendKeyDownUpSync(KeyCode); } catch (Exception e) { Log.e("hello", e.toString()); } } }.start(); }
上面这段代码是我google到的,他确实很管用。Instrumentation可以用户检测应用程序与系统的交互,经常用于软件测试当中,这个类功能强大,感兴趣的可以深入挖掘一下,这里只引出它发送按键事件的功能。在代码中调用simulateKey(82);则可以发送一个Menu事件,效果和input keyevent 82是一样的。
3.使用命令发送模拟按键
public static void simulateKeyByCommand(final int KeyCode){ try{ String keyCommand = "input keyevent " +KeyCode; Runtime runtime = Runtime.getRuntime(); Process proc = runtime.exec(keyCommand); } catch(IOException e){ //Log.e(TAG, e.toString()); } }
更多相关文章
- android源码链接
- Android集成Facebook 事件统计
- Android(安卓)侧滑(双向滑动菜单)效果
- Android实现网易新闻客户端侧滑菜单(2)
- Android(安卓)按钮控制ViewPager左右翻页
- android拨打电话流程分析
- Android(安卓)RIL CDMA分支总结(1)
- android PhoneGap JQuery Mobile Demo
- Android的简单的广播的例子