keyevent事件的模拟三法

 input

adbshell input keyevent [--longpress] ...(Default: keyboard)

使用input命令发送keycode的事件(其对应值在KeyEvent.java中对应),但些事件会把down和up一起发送。可加入--longpress来模拟长按事件。


sendevent

adbshell sendevent device type code value

此处的code不再是keyevent.java中的keycode值,其为kernel中对应的值。在mt6737中为mtk-kpd.kl文件中的值.此样式如下。

key 113MUTE

key 116POWER

key 211FOCUS

power键对应的就是116,若要向设备发送一个power键的down事件,则使用

adb shell sendevent/dev/input/event2 1 116 1

adb shell sendevent/dev/input/event2 0 0 0

若要向设备发送一个power键的up事件,则使用

adb shell sendevent/dev/input/event2 1 116 0

adb shell sendevent/dev/input/event2 0 0 0

PS:一定要一起发这两条,第一条是发了power键的down事件,第二条为其sync状态。

/dev/input/event2:为其设备节点,可通getevent进行查看。

以上命令为mt6737上的命令,不同的项目,命令可能不同,可通过用getevent命令,进行一次真实的按键,来获取其对应的device,type,code ,value值。


monkey

monkey:用来模拟猴子的乱点,也可指定其具体的操作。(本文只介绍keyevent事件的模拟)

adb shell monkey -f script count

script:monkey执行的操作脚本,脚本最基本格式如下:

start data >> //表明之后的为操作数据

DispatchKey(0,0,0,24,0,0,0,0)//keycode=24的键的down事件

DispatchKey(0,0,1,24,0,0,0,0) //keycode=24的键的up事件

DispatchKey(long downtime,long eventtime,int action, int code ,int reapeat,int metaState, int device,int scancode);

若downtime,eventtime <=0 ,则使用命令解析时的时间做为downtime,eventime,以SystemClock.uptimeMillis为基准。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 手机端配置tcp方式连接 su setprop service.adb.tcp.port 5555 stop ad...
    yoyo鹿鸣阅读 5,697评论 0 4
  • 例子: //这条命令相当于按了设备的Backkey键 adb shell input keyevent 4 //可...
    井望阅读 14,262评论 0 5
  • 自从开始阅读发展心理学,就感觉很受用,作为一个新手妈妈,总是会有那么多的疑惑和不解。今天老师的讲解既结合理论知识又...
    小扉儿阅读 211评论 0 0
  • 许余把自己的签名改成了“相见不如怀念”。改过之后,她知道有些事情再也不能回到过去了,以后有的也只是回忆。 她从抽屉...
    迟一木阅读 612评论 6 10
  • 她,不是流浪者?我不确定。她只带了一个黑色背包,一个手提袋。 我找了一个巨大机器的背面,这里稍微安静些。她也过来,...
    石姜阅读 140评论 0 0