使用ADB获取屏幕状态

时间:2013-10-26 21:11:05

标签: android adb

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

5 个答案:

答案 0 :(得分:14)

dumpsys power | grep mScreenOn

答案 1 :(得分:6)

在5.0上,您似乎必须为<{p>}的dumpsys power输出进行grep

Display Power: state=OFF

Display Power: state=ON

答案 2 :(得分:1)

这对我有用:

adb shell dumpsys display | grep mScreenState

输出:

mScreenState=OFF

答案 3 :(得分:0)

在Moto G5 +,Moto X4和Samsung Note 8上,我看到以下内容可以正常工作,而dumpsys电源却没有起作用(所有设备均为棉花糖或更高版本):

adb shell dumpsys deviceidle | grep mScreenOn

收益

mScreenOn=false

屏幕“锁定”时是否为空白,而

adb shell dumpsys window | grep mScreenOn

产量,

mScreenOnEarly=false mScreenOnFully=false

仅当屏幕没有“呼吸”信息(例如时间)时。

使用dumpsys deviceidle来了解是否需要解锁屏幕以允许用户交互。

答案 4 :(得分:0)

  • 我的电话:XiaoMi 9
    • Android:10

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

方法1:使用mHoldingDisplaySuspendBlocker

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

方法2:使用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->屏幕打开(和已解锁

方法4:使用service call

  • 命令:adb shell service call power 12
  • 输出:
    • Result: Parcel(00000000 00000000 '........')-> 0表示屏幕关闭
    • Result: Parcel(00000000 00000001 '........')-> 1表示屏幕 ON