From 96cf0443f1f2a33156024cb660fb605dbf8f8f29 Mon Sep 17 00:00:00 2001 From: blakeyzhang Date: Mon, 22 Mar 2021 21:34:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9android=2010=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E8=8E=B7=E5=8F=96qq=E6=8E=A7=E4=BB=B6=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manager/windowmanager.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/manager/windowmanager.py b/manager/windowmanager.py index f5f4821..849797b 100644 --- a/manager/windowmanager.py +++ b/manager/windowmanager.py @@ -171,9 +171,14 @@ def get_window_list(self, update=False): def _get_windows_data(self): '''获取windows数据并解析 ''' + window_name = None result = self._device.adb.run_shell_cmd('dumpsys window windows') result = result.replace('\r', '') - # print result + current_activity = self._device.adb.run_shell_cmd("dumpsys activity a . | grep -E 'mResumedActivity' | cut -d ' ' -f 8") + if '/' in current_activity: + package_name, activity_name = current_activity.split('/') + window_name = package_name + '/' + package_name + activity_name + # print result windows = [] window = None p1 = re.compile(r'^ Window #(\d+) Window{(\w{6,9}) (.*)}:$') @@ -189,6 +194,8 @@ def _get_windows_data(self): items = title.split(' ') if 'u0' == items[0]: title = items[1] else: title = items[0] + if title == window_name: + self._current_window = Window(self, int(ret.group(1)), ret.group(2), title) window = Window(self, int(ret.group(1)), ret.group(2), title) # 此逻辑可能有bug windows.append(window) elif 'mObscuringWindow' in line: @@ -200,14 +207,6 @@ def _get_windows_data(self): else: Log.w("WindowManager", line) self._current_window = None - else: - ret = p2.search(line) - if ret: - title = ret.group(3) - self._current_window = Window(self, 0, ret.group(1), title) - else: - Log.w("WindowManager", line) - self._current_window = None elif 'mInputMethodTarget' in line: ret = p2.search(line) self._current_input_target = Window(self, 0, ret.group(1), ret.group(2) if ret.group(2) and len(ret.group(2)) > 5 else ret.group(3))