抑郁症健康,内容丰富有趣,生活中的好帮手!
抑郁症健康 > android shell检查是否锁屏_ADB获取手机屏幕的状态(点亮与否)以及ADB点击事件基本操作...

android shell检查是否锁屏_ADB获取手机屏幕的状态(点亮与否)以及ADB点击事件基本操作...

时间:2020-08-17 16:42:11

相关推荐

一、文档概述

在对Android设备操作之前,经常需要通过adb获取一些设备基本信息。尤其是在全自动运行过程中,尽量减少人工的干预。本文档记录了检查手机屏幕的状态以及解锁的方式。

二、技术基础

在项目开发过程中,会经常用到adb对设备进行操作或者获取一些基本信息。其中对屏幕解锁以及获取屏幕状态也是比较重要的。

已知的操作方式,通过adb命令模拟按键事件。

// 点亮屏幕

adb shell input keyevent 26

// 尝试解锁

adb shell input keyevent 82

通过adb按键事件可以实现基本的点亮屏幕以及基本的解锁操作。现在存在一个问题,如何判断什么时候需要点击电源按钮点亮屏幕呢?

三、实现细节

通过第二部分的描述,我们已经可以实现基本的操作,但是现在的问题在于什么情况下需要进行电源操作。

调试命令

关于屏幕的信息应该在这个命令内有描述。再结合:检测手机屏幕是否亮屏解锁

经过测试发现,的确可以判断屏幕是否点亮,但是代码逻辑并不完善,还存在点亮未解锁的情况。

现在需要判断锁屏状态下屏幕是否点亮。

通过控制变量的方式,输出信息做对比。

熄屏状态得到的窗口策略信息:

熄屏

屏幕点亮状态下获取到的窗口策略信息:

屏幕点亮

通过对两次输出做对比:

输出对比

因此,只要判断如下代码即可区分出屏幕状态:

mScreenOnEarly=false mScreenOnFully=false mOrientationSensorEnabled=false

其中,三个变量只需要比对一个即可。当值为true表示屏幕已点亮。

通过判断以上输出即可决定是否需要执行屏幕点亮的操作了。

四、工程代码

Python示例代码:

stdout, stderr = CmdUtils.runCmd('adb shell dumpsys window policy', True)

if 'mShowingLockscreen=true' in stdout:

if 'mScreenOnEarly=false' in stdout:

os.system('adb shell input keyevent 26')

os.system('adb shell input keyevent 82')

注:CmdUtils.runCmd() 函数为获取cmd命令的输出结果

五、小结

关于adb的功能,看来我还是知之甚少啊。继续学习adb,强大到让你怀疑自己。

如果觉得《android shell检查是否锁屏_ADB获取手机屏幕的状态(点亮与否)以及ADB点击事件基本操作...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。