android adb 模拟长按,adb 模拟长按电源键

获得事件

我来说说我是怎么做的。

首先我在手机的shell下输入了getevent命令,这样就可以接收到手机上操作的所有event事件。

03b7ed9e34e58470a054865cb653b6bb.png

这个时候我们按下我们手机电源键,来看看可以接收到哪些事件信息,按下电源键后:

3f3fab43a7f4a23dc7fc3021db98c7ce.png

我们得到了以上四条信息。

我们来以第一条为例分析一下获得是什么?

/dev/input/event0:  代表 device

0001                         代表一个type

0074                        代表power键的code(为16进制)

00000001                 代表value 一般 1代表按下,0代表放开。

根据查阅sendevent 需要的参数为就是device、type、code、value。

sendevent /dev/input/event0 1 116 1(0074转化为十进制后为116)

sendevent /dev/input/event0 0 0 0

sleep 3

sendevent /dev/input/event0 1 116 0

sendevent /dev/input/event0 0 0 0

sh脚本

当知道了如何模拟长按电源键之后,那么我们如何用在自动化中呢?这里我打算介绍一下shell脚本

众所周知Android是基于linux内核的,而shell脚本可以运行在linux中,所以我们试试用sh脚本是否可以在Android中运行。

1、完成脚本

因为Android本身内部没有vi,因此我打算在Windows上写好脚本然后导入进去,脚本内容为:

fcecaa27ea5212ceb9bf034c36bfbf34.gif

#!/bin/sh

sendevent /dev/input/event0 1 116 1

sendevent /dev/input/event0 0 0 0

echo "down"

sleep 3

sendevent /dev/input/event0 1 116 0

sendevent /dev/input/event0 0 0 0

echo "up"

fcecaa27ea5212ceb9bf034c36bfbf34.gif

2、导入手机

这一步不用多说,将脚本名称保存为 "boy.sh",然后使用adb导入手机sd卡。

340db4fe837435d559b57c6a5ae21485.png

3、加权限

一般linux系统中,导入的文件可能没有权限,因此我们需要加权限后再运行,于是我做了下面的操作:

0145186c69f70e1fde4cac3a1624a9a2.png

运行后提示我没有权限,明明刚才加了权限的,我们来查看一下文件:

f4916c9f9b3708048266c33869818de2.png

仔细一看果然没有加权限成功,怀疑自己刚才是不是打错了,于是又试了一次,还是不行。

最终经过不断的尝试,发现原来是sd卡是无法加权限的,必须要把文件放到 /data/data/的目录下才可以:

c5c5ab431cf722cddc19c1e7bda78597.png

终于权限加成功了。

4、运行

权限加成功后,迫不及待的去运行:

c43ea7f2aa3d43760b8d5c9c3f82e5d8.png

还是提示有问题,后来也是不断尝试才知道,原因是手机的启动命令和linux还是有差别,使用下面的启动方法即可:

45c66c029650855f25c140eb04dbe42b.png

运行完成之后,观察手机,出现了长按电源键后的效果:

0f3dc3e56488344f1ef07e83bdad65ca.png

原文:https://www.cnblogs.com/Peng-study/p/12806860.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值