./setdisplay.sh imeInputTarget in display# 0 Window{fc89d96 u0 com.ktcp.video/com.ktcp.video.activity.detail.DetailCoverActivity} 该窗口不在 display#0 或 display#2 上 rk3588_s:/vendor/bin # ./setdisplay.sh imeInputTarget 该窗口不在 display#0 或 display#2 上
时间: 2024-03-02 19:48:17 浏览: 92
这个问题可能是因为当前焦点所在的窗口不在 `display#0` 或 `display#2` 上,导致无法找到对应的显示器 ID。
可以尝试使用以下命令来获取当前所有显示器的 ID:
```
dumpsys window displays | grep 'id=' | awk -F ' = ' '{print $2}'
```
然后再根据具体情况调整 `setdisplay.sh` 脚本中的显示器 ID,确保将输入法窗口移动到正确的显示器上。
另外,也可以在 `setdisplay.sh` 脚本中添加一些错误处理机制,例如在找不到对应显示器 ID 的情况下给出提示信息,或者在移动窗口失败时给出错误提示等。
相关问题
./setdisplay.sh[12]: syntax error: unexpected 'els 会报这个
出现这个错误的原因是第 7 行的语法有误。具体来说,`else` 与前面的语句之间需要有一个空格,即应该写成 `else `(后面有一个空格)。修改后的脚本如下:
```
#!/system/bin/sh
local id_activity=$(dumpsys window | grep display | grep 'imeInputTarget' | awk '{print $4,$7}' | cut -d'}' -f1)
local focus=$(dumpsys window | grep "mCurrentFocus" | tail -n 1 | awk '{print $NF}' | cut -d'}' -f1)
local activity=$(echo "$id_activity" | grep "$focus")
if [ "$activity" = "$id_activity | awk '{print $2}'" ]
then
am start -n $id_activity | awk '{print $4}' --display $id_activity | awk '{print $3}'
else
am start -n $id_activity | awk '{print $2}' --display $id_activity | awk '{print $1}'
fi
```
请注意,这段脚本仍然需要在 Android 系统中运行。如果您想在其他系统中运行,请修改脚本中的命令以适应您的系统。
./vendor/bin/setdisplay.sh rk3588_s:/ # dumpsys window | awk '/displayId=/ {print $1}' | sed 's/displayId=//g' 2 0
这是一个 shell 脚本命令,看起来是为了设置显示器的参数。具体来说,它会执行一个名为 setdisplay.sh 的脚本,脚本的参数是 rk3588_s:/。这个参数可能是指定了一个特定的设备或者显示器。脚本的具体内容可能会调用一些其它的命令来设置显示器的分辨率、刷新率等参数。第二行的命令则是使用 dumpsys 命令来获取当前窗口的信息,并用 awk 和 sed 工具将其中的 displayId 提取出来,最终输出为 2 0。这个输出可能表示当前的窗口显示在第二个显示器上。
阅读全文