#!/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"| awk '{print $NF}') echo $activity echo $id_activity | awk '{print $2}' if [ "$activity" = "$id_activity | awk '{print $2}'" ] then echo "相同" else echo "不相同" fi 优化一下为什么输出相同判断成不同
时间: 2024-03-02 22:52:00 浏览: 154
cepheus_input.txt(dumpsys input信息)
这个脚本的问题在于 if 语句中的判断条件不正确。在这个条件中,$id_activity 和 awk '{print $2}' 并没有正确地被替换为它们对应的值。
可以将条件改为:
```
if [ "$activity" = "$(echo $id_activity | awk '{print $2}')" ]
```
这样,就可以正确地判断当前运行的应用程序是否与输入法(IME)的输入目标相同。
阅读全文