安卓中使用adb判断手机是否重启成功

在自动化过程中,我们经常需要重启Android手机。那么如何判断手机已经重启完成呢?

大多数时候我们只要检测到ADB,就可以发送新的命令。这是通过:
adb wait-for-device {cmd}
就可以实现。
也可以通过读取getprop sys.boot_completed来判断重启是否完成。
但是,还有些情况是我们需要判断手机已经重启并进入主界面了。那这个应该如何实现呢?adb会先于UI界面而出现。所以检测到adb不代表UI已经重启完全。
一个比较直接的方法是截屏,通过图像对比。另外的方法如下:

如何检查手机当前是否处于Homescreen:

 adb wait-for-device shell dumpsys window windows

然后过滤mCurrentFocus=Window字段

如果在homescreen, 输出会有以下字段:

mCurrentFocus=Window{173c942 u0 com.android.launcher3/com.android.launcher3.Launcher}

如果在锁屏界面,输出会有以下字段:

mCurrentFocus=Window{50817ef u0 com.android.settings/com.android.settings.CryptKeeper}

如果设置了开机Pin码,输出会有以下字段:

mCurrentFocus=Window{b1e0911 u0 KeyguardScrim}

所以通过过滤以上关键字,就可以检查出手机处于什么界面了。

赞 (0)