原始标题:检查屏幕是否已通过adb(Android)锁定
我有一个手机生根脚本。它要求手机重启几次,并要求我按下#34;输入"每次重启后。我希望我的脚本通过adb
知道何时显示锁定屏幕(并重新启动完成)。
我不想在手机上安装其他软件,只是为了在脚本完成时将其删除。
我可以使用adb wait-for-device
但设备在重新启动完成之前可用。而且我不想添加N秒延迟。
我想要一种让我知道锁屏已经显示的方法。 (我没有将手机配置为使用默认锁定屏幕以外的其他内容,因此可以假设它将被显示)。
修改
解决方案https://stackoverflow.com/a/13095523/755804有效。我将问题保留在原始状态,让其他人愿意检查锁屏是否显示(重启后第一次)了解dev.bootcomplete
属性。
# works
adb wait-for-device shell 'while [ "$(getprop dev.bootcomplete)" != "1" ] ; do sleep 1; done'
顺便说一下,在显示锁定屏幕几秒钟后播出。
EDIT2
使用dumpsys
的建议首先在我的手机上不起作用(因为我不知道该怎么做; @Mattia:你不应该删除你的答案。)
# it did not work for me
adb shell dumpsys power | grep mBootCompleted
但我认为dumpsys
仍然值得一提,请阅读:What's the Android ADB shell "dumpsys" tool and what are its benefits?与logcat不同,dumpsys
无法无限运行,它会打印一个长输出然后停止。
经过一些研究,我可以使用非常慢的
获得旗帜# very slow
adb shell dumpsys | grep -i mSystemBooted
并且相当快
adb shell dumpsys window | grep -i mSystemBooted
(首先它不显示任何内容,然后显示mSystemBooted=false
,然后mSystemBooted=true
显示同一行中的其他内容)。可能该短语可能因设备和Android版本而异。