【发布时间】:2023-03-29 10:57:01
【问题描述】:
我需要在我的脚本中知道设备的屏幕是否关闭。是否有任何简单的命令可以使用 ADB 获取此类信息?
【问题讨论】:
我需要在我的脚本中知道设备的屏幕是否关闭。是否有任何简单的命令可以使用 ADB 获取此类信息?
【问题讨论】:
dumpsys power | grep mScreenOn
【讨论】:
dumpsys input_method | grep mScreenOn。有关更多信息,请参阅我对这篇文章的回答:stackoverflow.com/a/21419347/1345115
在 5.0 上,您似乎必须 grep dumpsys power 输出
Display Power: state=OFF
或
Display Power: state=ON
【讨论】:
在 Moto G5+、Moto X4 和 Samsung Note 8 上,我看到以下内容可以正常工作,而 dumpsys power 却没有(所有设备都是 Marshmallow 或更高版本):
adb shell dumpsys deviceidle | grep mScreenOn
产量,
mScreenOn=false
当屏幕“锁定”时,无论是否为空白,而,
adb shell dumpsys window | grep mScreenOn
产量,
mScreenOnEarly=false mScreenOnFully=false
仅当屏幕没有“呼吸”信息(例如时间)时。
使用 dumpsys deviceidle 了解是否需要解锁屏幕以允许用户交互。
【讨论】:
XiaoMi 9
10
mHoldingDisplaySuspendBlocker
adb shell dumpsys power | grep mHoldingDisplaySuspendBlocker
mHoldingDisplaySuspendBlocker=false -> 屏幕关闭
mHoldingDisplaySuspendBlocker=true -> 屏幕开启
mWakefulness
adb shell dumpsys power | grep mWakefulness=
mWakefulness=Dozing -> 屏幕关闭
mWakefulness=Awake -> 屏幕开启
nfc(如果android有NFC模块)adb shell dumpsys nfc | grep mScreenState=
mScreenState=OFF_LOCKED -> 屏幕关闭(并锁定)mScreenState=ON_XXX -> 屏幕开启
mScreenState=ON_LOCKED -> 屏幕开启(并且锁定)mScreenState=ON_UNLOCKED -> 屏幕开启(并且解锁)service call
adb shell service call power 12
Result: Parcel(00000000 00000000 '........') -> 0 表示屏幕关闭
Result: Parcel(00000000 00000001 '........') -> 1 表示屏幕开启
【讨论】:
这对我有用:
adb shell dumpsys display | grep mScreenState
输出:
mScreenState=OFF
【讨论】: