【发布时间】:2014-01-28 14:58:22
【问题描述】:
我正在寻找是否可以使用 ADB 确定屏幕是否在 android 设备上。对于我尝试使用猴子跑步者运行的一些测试,我需要知道这一点。是否有一个我可以输入的 shell 命令,因此作为猴子运行器命令的一部分包含在内,它会明确告诉我屏幕是打开还是关闭?
【问题讨论】:
-
@AlexP。是的,我在寻找这个答案时错过了。
标签: android testing adb monkeyrunner
我正在寻找是否可以使用 ADB 确定屏幕是否在 android 设备上。对于我尝试使用猴子跑步者运行的一些测试,我需要知道这一点。是否有一个我可以输入的 shell 命令,因此作为猴子运行器命令的一部分包含在内,它会明确告诉我屏幕是打开还是关闭?
【问题讨论】:
标签: android testing adb monkeyrunner
在进行一些测试时,我发现使用adb shell dumpsys power | grep mScreenOn 将适用于版本号为 4.2+ 的设备
到目前为止,我发现在我测试过的所有设备上都可以使用的命令是:
adb shell dumpsys input_method | grep mScreenOn
这将产生类似:
mSystemReady=true mScreenOn=true
您可以使用它来确定屏幕是否打开。
在 2.2 - 4.4.2 范围内的所有 Android 模拟器、Samsung Galaxy SII (4.0.4)、Samsung Galaxy Tab 8.9 (4.0.4) 和带有 CM11 的 Nexus 4 上测试
另外值得一提的是,在 4.2 之前的设备上,您可以使用命令 adb shell dumpsys power | grep mPowerState 来获得类似这样的信息:
mIsPowered=true mPowerState=3 mScreenOffTime=24970 ms
mPowerState=SCREEN_BRIGHT_BIT SCREEN_ON_BIT
并检测是否存在 SCREEN_ON_BIT 字符串
【讨论】:
mInteractive=true 响应,在屏幕关闭时以 mInteractive=false 响应;第二个命令在打开时以Display Power: state=ON 响应,在屏幕关闭时以state=OFF 响应。
dumpsys power 没有 mScreenOn。但是我在电视屏幕关闭时看到mWakefulness=Asleep,在电视屏幕打开时看到mWakefulness=Awake。
是的,如果您输入:
adb shell dumpsys power | grep mScreenOn
这将返回一个真或假值,告诉您屏幕当前是否打开。它应该是这样的:
mScreenOn=true
知道了这一点,您需要做的就是从结果中解析出真/假值,并将 shell 命令输入到猴子运行器脚本中。
这是在运行 4.4.2 的 android 设备上测试的。
【讨论】: