如何判断ADB是否启用了屏幕

And*_* T. 8 testing android adb monkeyrunner

我想找出是否有可能确定屏幕是否在使用ADB的Android设备上.我需要知道一些我试图使用猴子跑步者进行的测试.是否有一个我可以输入的shell命令,因此包含作为猴子跑步者命令的一部分,它将明确地告诉我屏幕是打开还是关闭?

Car*_* B. 9

在进行一些测试时,我发现使用adb shell dumpsys power | grep mScreenOn将适用于版本号为4.2+的设备

我发现在我测试的所有设备上工作的命令是使用:

 adb shell dumpsys input_method | grep mScreenOn
Run Code Online (Sandbox Code Playgroud)

这会产生类似的东西:

mSystemReady=true mScreenOn=true
Run Code Online (Sandbox Code Playgroud)

您可以使用它来确定屏幕是否打开.

在2.2 - 4.4.2,三星Galaxy SII(4.0.4),三星Galaxy Tab 8.9(4.0.4)和带有CM11的Nexus 4的所有Android仿真器上进行了测试

另外值得一提的是,在4.2之前的设备上,你可以使用命令adb shell dumpsys power | grep mPowerState得到这样的东西:

mIsPowered=true mPowerState=3 mScreenOffTime=24970 ms
mPowerState=SCREEN_BRIGHT_BIT SCREEN_ON_BIT
Run Code Online (Sandbox Code Playgroud)

并检测是否存在SCREEN_ON_BIT字符串

  • 在Lollipop(Nexus 6)上,第一个命令在屏幕打开时以"mInteractive = true"响应,或在关闭时以"mInteractive = false"响应; 第二个命令在打开时响应"显示电源:状态=开启",当屏幕关闭时响应"状态=关闭". (5认同)