欢迎光临
梦想从学习开始!

如何通过脚本模拟设备实体的按键

在日常的工作中,经常性的会遇到实体的按键来进行测试且是长时间的类似长拷形式的测试,那么此时我们如何将这部分的人力进行释放呢?
我们想通过脚本的方式来模拟操作实体的按键。
模拟实体按键操作

getevent和sendevent作用

在Android设备中,getevent命令能获取到实体按键触发的打印,也就是当按下和抬起的时候,都有一个打印能识别出来
getevent
相同的,当使用sendevent的时候,也就是将之前getevent的事件发送过去。那么问题就是如何将sendevent的命令将getevent的事件模拟获取呢?

sendevent功能实现

上面我们已经获取了getevent的事件,现在我们将该事件转为sendevent
sendevent
我们来看看实际的代码如何实现,以长按电源键为例:

rem 通过电源键长按弹出选项,按下
adb shell sendevent /dev/input/event0 1 116 1
adb shell sendevent /dev/input/event0 0 0 0
ping 127.0.0.0 -n 3 > nul
rem 长按电源键之后,释放的动作
adb shell sendevent /dev/input/event0 1 116 0
adb shell sendevent /dev/input/event0 0 0 0 

我们在来看看完整的例子,长按电源键进行重启
[ttr2v]

echo off
echo 等待设备的插入.....
adb wait-for-device
echo 设备已经插入电脑.....
echo.
echo We will reboot this device now.....

rem 设置重启的次数
set /a reboot_time=3
rem 重启计数
set /a num=0
rem 第一次从灭屏状态唤醒,若设置已经处于亮屏状态,则不需要此动作。
adb shell input keyevent POWER

:reboot
if %num% lss %reboot_time% (
	adb wait-for-device
	rem 从底部往上滑动解锁
	adb shell input swipe 481 1501 339 147
	ping 127.0.0.1 -n 1 > nul
	rem 通过电源键长按弹出选项,按下
	adb shell sendevent /dev/input/event0 1 116 1
	adb shell sendevent /dev/input/event0 0 0 0
	ping 127.0.0.0 -n 3 > nul
	rem 长按电源键之后,释放的动作
	adb shell sendevent /dev/input/event0 1 116 0
	adb shell sendevent /dev/input/event0 0 0 0 
	rem 在弹出界面选择重启的选项
	adb shell input tap 629 902
	ping 127.0.0.0 -n 2 > nul
	rem 选择重启之后,在重启的选项框中选项确认进行重启
	adb shell input tap 868 1161
	echo Now this device is reboot.
	set /a num += 1
	
)else (
	goto end
)
echo We have run %num% times....
ping 127.0.0.0 -n 10 > nul
goto reboot

:end
echo This device have run %num% times.
pause

[/ttr2v]

赞(0) 打赏
未经允许不得转载:小熊分享邦 » 如何通过脚本模拟设备实体的按键

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏