我知道PowerManager和/或KeyguardManager可以帮助我检查设备屏幕是否被锁定/解锁.有没有办法通过adb检查这个?
此命令将输出与设备电源相关的所有内容:
adb shell dumpsys power
Run Code Online (Sandbox Code Playgroud)
你可以管这一个grep来获得的价值mHoldingWakeLockSuspendBlocker
和mHoldingDisplaySuspendBlocker
:
adb shell dumpsys power | grep 'mHolding'
Run Code Online (Sandbox Code Playgroud)
如果两者都为假,则显示屏关闭.
如果mHoldingWakeLockSuspendBlocker
为false,并且mHoldingDisplaySuspendBlocker
为true,则显示为on,但已锁定.
如果两者都为真,则显示为打开.
由于Lollipop PowerManager.isInteractive()
和TrustManager.isDeviceLocked()
是检查设备屏幕是否打开和解锁的正确方法。
他们相应的service call
命令将是:
adb shell service call power 12
Run Code Online (Sandbox Code Playgroud)
和
adb shell service call trust 7
Run Code Online (Sandbox Code Playgroud)
这就是可以从Python代码检查它而不必找到设备的Android版本特定服务调用代码的方式-https: //gist.github.com/ktnr74/60ac7bcc2cd17b43f2cb
仅当设备具有NFC时才有效:
# returns one of: mScreenState=OFF|ON_LOCKED|ON_UNLOCKED
adb shell dumpsys nfc | grep 'mScreenState='
Run Code Online (Sandbox Code Playgroud)
关 - 屏幕关闭
ON_LOCKED - 屏幕显示锁定屏幕
ON_UNLOCKED - 设备已解锁
在此总结其他(@Vouskopes
等)答案:
XiaoMi 9
10
mDreamingLockscreen
adb shell dumpsys window | grep mDreamingLockscreen
mShowingDream=false mDreamingLockscreen=true mDreamingSleepToken=null
-> 屏幕锁定
ON
或OFF
mShowingDream=false mDreamingLockscreen=false mDreamingSleepToken=null
-> 屏幕解锁nfc
(如果android有NFC模块)adb shell dumpsys nfc | grep 'mScreenState='
mScreenState=OFF_LOCKED
-> 屏幕关闭并锁定mScreenState=ON_LOCKED
-> 屏幕打开并锁定mScreenState=ON_UNLOCKED
-> 屏幕打开并解锁 归档时间: |
|
查看次数: |
9829 次 |
最近记录: |