dumpsys window | awk '/mCurrentFocus/ {print $NF}' | cut -d/ -f1 | sed 's/[{}]//g' mCurrentFocus=null com.rxgb.launcher
时间: 2024-01-03 22:03:25 浏览: 145
如果输出结果中包含了 `mCurrentFocus=null`,那么说明当前屏幕上没有任何应用程序处于前台运行状态。在这种情况下,你可以使用条件语句来判断输出结果是否包含应用程序包名,如果包含则输出应用程序包名,否则输出提示信息。
具体示例代码如下:
```python
import re
import subprocess
output = subprocess.check_output("dumpsys window windows", shell=True).decode()
match = re.search(r"mCurrentFocus=(Window\{.+?\})", output)
if match:
package_name = match.group(1).split("/")[-1].split()[0].replace("{", "").replace("}", "")
print("Package Name:", package_name)
else:
print("No application is currently in the foreground.")
```
这个代码中先使用正则表达式来匹配 `mCurrentFocus` 的值,如果匹配到了就输出应用程序包名,否则输出提示信息。注意,这里使用了 `split()` 方法来进一步从匹配到的字符串中提取应用程序包名。
输出结果类似于:
```
Package Name: com.rxgb.launcher.activity.MainActivity
```
或者:
```
No application is currently in the foreground.
```
这样就可以避免在没有应用程序处于前台运行时输出错误信息了。
阅读全文