dumpsys window | grep display 改为详细到那个是前台的
时间: 2024-02-26 16:58:26 浏览: 85
你可以使用以下命令来查看当前正在前台的应用的详细信息:
```
adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
```
这个命令会输出当前正在前台运行的应用的包名和 Activity 名称,以及应用所在的窗口的详细信息(包括窗口类型、标志等等)。如果你只想查看前台应用的包名,可以使用以下命令:
```
adb shell dumpsys window windows | grep mCurrentFocus | cut -d' ' -f7 | cut -d'}' -f1
```
这个命令会输出当前正在前台运行的应用的包名。
相关问题
dumpsys window | grep display,dumpsys window | grep -E 'mCurrentFocus|mFocusedApp' 这两个结合可以切换屏幕的前台应用吗
`dumpsys window | grep display` 和 `dumpsys window | grep -E 'mCurrentFocus|mFocusedApp'` 这两个命令可以帮助你了解当前前台应用所在的屏幕和窗口的一些信息,但是不能通过这些信息来直接切换到另一个应用。
如果你想要切换到另一个应用,可以使用以下命令:
```
adb shell am start -n <package_name>/<activity_name>
```
其中,`<package_name>` 是目标应用的包名,`<activity_name>` 是目标应用的 Activity 名称。这个命令会启动目标应用并将其切换到前台。
需要注意的是,如果目标应用是受保护的应用(例如银行应用、支付应用等),可能无法通过命令行或手动方式切换到该应用。
local focus=$(dumpsys window | grep "mCurrentFocus" | tail -n 1 | awk '{print $NF}' | cut -d'}' -f1) local displays=$(dumpsys window | grep display | grep 'imeInputTarget') echo $displays | grep $focus 可以这样吗
不可以这样做。因为在函数 `get_display_id()` 中,变量 `focus` 和变量 `displays` 的值是获取当前活跃窗口信息和所有显示器信息的中间变量,并没有保存当前活跃窗口所在的显示器 ID。
在这种情况下,使用 `echo $displays | grep $focus` 来查找当前活跃窗口所在的显示器 ID 是不准确的。因为在变量 `displays` 中可能包含多个显示器的信息,而当前活跃窗口所在的显示器 ID 只是其中的一个,如果使用 `grep` 命令来查找当前活跃窗口所在的显示器 ID,可能会得到错误的结果。
正确的方法是,在函数 `get_display_id()` 中使用 `grep` 命令和正则表达式来提取当前活跃窗口所在的显示器 ID,然后将其保存在变量中并返回。这样可以保证获取的是正确的当前活跃窗口所在的显示器 ID。
阅读全文