dumpsys window | grep display | grep 'imeInputTarget' | cut -d'#' -f2 | awk '{print $1}' | sed 's/#/ /' 0 2 我是说这个只有0 和2 我还想有包名
时间: 2023-10-23 07:11:49 浏览: 100
如果你想要获取当前输入法窗口所在应用的包名,可以使用以下命令:
```
adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
```
这个命令会输出当前焦点窗口的信息,其中包括当前焦点窗口所在应用的包名。你可以将它与之前的命令组合使用,获取完整的信息,例如:
```
adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp' && adb shell dumpsys window | grep display | grep 'imeInputTarget' | cut -d'#' -f2 | awk '{print $1}' | sed 's/#/ /'
```
这个命令会先输出当前焦点窗口所在应用的信息,然后再输出当前输入法窗口的 ID。你可以根据需要对输出结果进行处理,提取出包名和输入法窗口 ID。
相关问题
dumpsys window | grep display | grep 'imeInputTarget' | cut -d'#' -f2 | awk '{print $1}' | sed 's/#/ /' 0 2
这是一个用于获取当前输入法窗口 ID 的命令,具体来说:
- dumpsys window:输出窗口系统的信息
- grep display:筛选包含 display 的行
- grep 'imeInputTarget':筛选包含 imeInputTarget 的行,这行信息包含了当前输入法窗口的 ID
- cut -d'#' -f2:按 # 分割,取第二个字段,即输入法窗口的 ID
- awk '{print $1}':输出第一个字段,即输入法窗口的 ID
- sed 's/#/ /':将 # 替换为空格,这样输出的就是纯数字的输入法窗口 ID。
如果你想了解更多关于 Android 系统的命令,请参考 Android 开发者文档中的相关章节。
dumpsys window | grep display | grep 'displayId=' | head -n 1 | grep -oE '[0-9]+' 2 Failed to write while dumping service window: Broken pipe
这个错误可能是由于 `dumpsys window` 命令的输出太长,导致管道中的数据被缓冲满了,无法继续写入。你可以尝试使用以下命令来解决这个问题:
```sh
DISPLAY_ID=$(dumpsys window | awk '/displayId=/ {print $1}' | sed 's/displayId=//g')
```
这个命令使用了 `awk` 和 `sed` 工具来提取 `dumpsys window` 命令的输出,以便获取当前副屏幕的 ID。你可以将这个命令替换掉原来的命令,重新运行脚本,看看能否解决问题。
阅读全文