需求是这样的:在Android中启动lua脚本,该脚本是通过触动精灵来运行的。
在确保服务开启的情况下,触动精灵脚本可以通过音量键“-”来运行,所以就直接在Android中通过adb shell input keyevent 25(音量“-”键),实际发现音量虽然减小了,但是脚本却没有运行。
另外发现手动点击音量“-”键确实可以运行脚本,所以本来还想着没辙的话就得通过辅助功能来点击,但是想想虽然可以做到,但是步骤太多,有点繁琐。
最后的解决办法:
通过adb shell sendevent 的方式来实现的,首先执行adb shell进入到shell里面,通过 getevent -t 命令来看出实际的命令。
手动点击音量“-”键,观察getevent的输出,看到有4条指令,其实就是分为4步:
按下音量减->发送同步报告->抬起音量减->发送同步报告。
注意这里的数字是16进制的,如下图:
输出格式:
设备名: 事件type 事件code 事件value
接下来就是通过通过sentevent输入这两个命令就可以了,不过要注意的是,sendevent是十进制的。
所以还得先转为10进制,运行后发现可以启动触动精灵脚本了。
sendevent /dev/input/event2 1 114 1
sendevent /dev/input/event2 0 0 0
sendevent /dev/input/event2 1 114 0
sendevent /dev/input/event2 0 0 0
总结:
感觉adb shell input keyevent跟正常的手动点击按钮还是有点区别,或许它不够底层吧,所以用sentevent来实现。记录下这种做法,可能会有人需要~~~