From c6b0823ec0a07702799f55cb64f013a9aa166a49 Mon Sep 17 00:00:00 2001 From: Pactortester <1456470136@qq.com> Date: Fri, 26 Jun 2020 22:06:55 +0800 Subject: [PATCH] =?UTF-8?q?fix=20bug=EF=BC=9A=E5=85=BC=E5=AE=B9=20?= =?UTF-8?q?=E5=AE=89=E5=8D=9310=EF=BC=8Cmiui11=20(is=5Fscreenon()=EF=BC=8C?= =?UTF-8?q?is=5Flocked())?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix bug https://github.com/AirtestProject/Airtest/issues/711 【安卓10 ,miui 11】 ,检测不了屏幕是否锁定 "Couldn't determine screen ON “ 设备:小米8 miui11 android 10 1.is_screenon() 2.is_locked() 以上2个api,检测屏幕是否锁定时报错:"Couldn't determine screen ON “ (cherry picked from commit 80575ab8fa483a075098c3b60ebd7f6129cdec94) (cherry picked from commit 1300359fc02c935eceb4cb5665fdfb582c486817) --- airtest/core/android/adb.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/airtest/core/android/adb.py b/airtest/core/android/adb.py index 7009f960..fbd3e4a0 100644 --- a/airtest/core/android/adb.py +++ b/airtest/core/android/adb.py @@ -1059,11 +1059,18 @@ def is_screenon(self): True or False whether the screen is turned on or off """ - screenOnRE = re.compile('mScreenOnFully=(true|false)') - m = screenOnRE.search(self.shell('dumpsys window policy')) - if m: - return (m.group(1) == 'true') - raise AirtestError("Couldn't determine screen ON state") + try: + screenOnRE = re.compile('mScreenOnFully=(true|false)') + m = screenOnRE.search(self.shell('dumpsys window policy')) + if m: + return (m.group(1) == 'true') + raise AirtestError("Couldn't determine screen ON state") + except Exception: + screenOnRE = re.compile('screenState=(SCREEN_STATE_ON|SCREEN_STATE_OFF)') + m = screenOnRE.search(self.shell('dumpsys window policy')) + if m: + return (m.group(1) == 'SCREEN_STATE_ON') + raise AirtestError("Couldn't determine screen ON state") def is_locked(self): """ @@ -1076,7 +1083,7 @@ def is_locked(self): True or False whether the screen is locked or not """ - lockScreenRE = re.compile('(?:mShowingLockscreen|isStatusBarKeyguard)=(true|false)') + lockScreenRE = re.compile('(?:mShowingLockscreen|isStatusBarKeyguard|showing)=(true|false)') m = lockScreenRE.search(self.shell('dumpsys window policy')) if not m: raise AirtestError("Couldn't determine screen lock state")