#!/system/bin/sh # 获取当前活跃窗口所在的显示器 ID get_display_id() { local focus=$(dumpsys window | grep "mCurrentFocus" | tail -n 1 | awk '{print $NF}' | cut -d'}' -f1) local displays=$(dumpsys window | grep display | grep 'imeInputTarget') } # 获取当前活跃窗口所在的显示器 ID display_id=$(get_display_id) 把id打印出来
时间: 2024-03-01 22:55:28 浏览: 48
要打印显示器 ID,只需要在获取到 `display_id` 变量的后面加上一行打印语句即可,比如:
```
echo "当前活跃窗口所在的显示器 ID 是:$display_id"
```
这样就可以将当前活跃窗口所在的显示器 ID 打印出来。如果想要打印当前不活跃窗口所在的显示器 ID,可以将函数 `get_display_id()` 中的变量名 `focus` 改成 `unfocus`,并在函数内部获取当前不活跃窗口所在的显示器 ID,然后在最后加上打印语句即可。
相关问题
#!/system/bin/sh #获取当前活跃窗口所在的显示器 ID get_display_id() { local focus=$(dumpsys window | grep "mCurrentFocus" | tail -n 1 | awk '{print $NF}' | cut -d'}' -f1) echo $focus local displays=$(dumpsys window | grep display) echo $(displays | grep $focus) } #获取当前活跃窗口所在的显示器 ID display_id=$(get_display_id) #获取当前不活跃窗口所在的显示器 ID 补完整
好的,下面是补完整的脚本:
```
#!/system/bin/sh
# 获取当前活跃窗口所在的显示器 ID
get_display_id() {
local focus=$(dumpsys window | grep "mCurrentFocus" | tail -n 1 | awk '{print $NF}' | cut -d'}' -f1)
local displays=$(dumpsys window | grep display)
echo $(displays | grep $focus)
}
# 获取当前活跃窗口所在的显示器 ID
display_id=$(get_display_id)
# 获取当前不活跃窗口所在的显示器 ID
inactive_windows=$(dumpsys window windows | grep -v "mCurrentFocus" | grep "Window #" | awk '{print $1}')
for window in $inactive_windows
do
if [[ $(dumpsys window $window | grep display) == $display_id ]]; then
inactive_window_id=$(echo $window | cut -d"#" -f2)
echo "Inactive window ID: $inactive_window_id"
fi
done
```
这个脚本会获取当前活跃窗口所在的显示器 ID,然后遍历所有不活跃窗口,找到它们所在的显示器 ID 是否与当前活跃窗口所在的显示器 ID 相同,如果相同,则输出该不活跃窗口的 ID。
#!/system/bin/sh # 获取当前活跃窗口所在的显示器 ID #get_display_id() { local focus=$(dumpsys window | grep "mCurrentFocus" | tail -n 1 | awk '{print $NF}' | cut -d'}' -f1) local displays=$(dumpsys window | grep display | grep 'imeInputTarget') echo "$focus" echo "$displays" echo "focus=$focus displays=$displays" echo $displays | grep "$focus" #} # 获取当前活跃窗口所在的显示器 ID #display_id=$(get_display_id) 这样才有输出
根据您提供的脚本,我注意到您将 `get_display_id` 函数的注释符号去掉了,但是将其注释符号去掉后,需要将调用函数的行注释掉才可以输出结果。因为在去掉注释符号后,函数会自动执行,因此如果不注释掉调用行,就会执行两次,导致输出结果不正确。
因此,如果您想手动调用 `get_display_id` 函数来获取结果,可以将调用行注释掉,例如:
```
#!/system/bin/sh
# 获取当前活跃窗口所在的显示器 ID
get_display_id() {
local focus=$(dumpsys window | grep "mCurrentFocus" | tail -n 1 | awk '{print $NF}' | cut -d'}' -f1)
local displays=$(dumpsys window | grep display | grep 'imeInputTarget')
echo "$focus"
echo "$displays"
echo "focus=$focus displays=$displays"
echo $displays | grep "$focus"
}
# 获取当前活跃窗口所在的显示器 ID
# display_id=$(get_display_id)
get_display_id
```
这样,执行 `./vendor/bin/setdisplay.sh` 命令时,就会输出 `get_display_id` 函数的结果。
阅读全文