8

我需要在我的脚本中知道设备的屏幕是否关闭。是否有任何简单的命令可以使用 ADB 获取此类信息?

4

5 回答 5

14

dumpsys power | grep mScreenOn

于 2013-10-26T21:36:25.623 回答
12

在 5.0 上,您似乎必须 grepdumpsys power输出

Display Power: state=OFF

或者

Display Power: state=ON
于 2014-12-10T16:32:51.073 回答
2

在 Moto G5+、Moto X4 和三星 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 了解是否需要解锁屏幕以允许用户交互。

于 2018-08-28T17:52:32.327 回答
1
  • 我的手机:XiaoMi 9
    • 安卓:10

使用 adb 检查屏幕状态开/关?

方法一:使用mHoldingDisplaySuspendBlocker

  • 命令:adb shell dumpsys power | grep mHoldingDisplaySuspendBlocker
  • 输出:
    • mHoldingDisplaySuspendBlocker=false-> 屏幕关闭
    • mHoldingDisplaySuspendBlocker=true-> 屏幕开启

方法二:使用mWakefulness

  • 命令:adb shell dumpsys power | grep mWakefulness=
  • 输出:
    • mWakefulness=Dozing-> 屏幕关闭
    • mWakefulness=Awake-> 屏幕开启

方法3:使用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表示屏幕开启
于 2020-02-03T10:43:51.740 回答
1

这对我有用:

adb shell dumpsys display | grep mScreenState

输出:

mScreenState=OFF
于 2020-11-16T15:17:48.343 回答