#!/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) 这样才有输出
时间: 2024-03-01 15:56:13 浏览: 21
根据您提供的脚本,我注意到您将 `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` 函数的结果。
相关问题
#!/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') } # 获取当前活跃窗口所在的显示器 ID display_id=$(get_display_id) 优化一下并且有打印
好的,可以将获取当前显示器 ID 的代码优化一下,并加上打印语句,如下所示:
```
#!/system/bin/sh
# 获取当前活跃窗口所在的显示器 ID
get_display_id() {
local window_info=$(dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp')
local display_id=$(echo "$window_info" | grep -oE 'DisplayId=[0-9]+' | cut -d'=' -f2)
echo "$display_id"
}
# 获取当前活跃窗口所在的显示器 ID
display_id=$(get_display_id)
# 打印当前活跃窗口所在的显示器 ID
echo "当前活跃窗口所在的显示器 ID 是:$display_id"
```
这里使用了 `dumpsys window windows` 命令来获取窗口的信息,然后使用 `grep` 命令和正则表达式来提取当前活跃窗口所在的显示器 ID。最后,使用 `echo` 命令将当前显示器 ID 打印出来。