还有和上面的使用 am start 命令启动指定应用程序,并指定要显示在哪个显示器上脚本结合
时间: 2024-03-01 09:53:53 浏览: 27
可以使用以下代码将 "am start" 命令和获取当前活跃窗口所在的显示器的代码结合起来,实现启动应用程序并指定显示器的功能:
```
#!/system/bin/sh
# 获取当前活跃窗口的包名和 Activity 名称
focus=$(dumpsys window | grep "mCurrentFocus" | tail -n 1 | awk '{print $NF}' | cut -d'}' -f1)
# 获取所有显示器的信息
displays=$(dumpsys window | grep display)
# 遍历每个显示器,查找当前活跃窗口所在的显示器
for display in $displays; do
if echo "$focus" | grep -q "$display"; then
echo "当前活跃窗口在显示器 $display 上。"
break
fi
done
# 如果当前活跃窗口不在指定的显示器上,则启动指定应用程序到指定的显示器上
if [ "$display" != "DISPLAY_ID" ]; then
am start -n PACKAGE_NAME/ACTIVITY_NAME --display DISPLAY_ID
echo "已启动应用程序到显示器 DISPLAY_ID 上。"
fi
```
其中,PACKAGE_NAME 和 ACTIVITY_NAME 分别表示要启动的应用程序的包名和 Activity 名称,DISPLAY_ID 表示要启动应用程序的显示器 ID。脚本首先获取当前活跃窗口的信息,然后获取所有显示器的信息,并遍历每个显示器,查找当前活跃窗口所在的显示器。如果当前活跃窗口不在指定的显示器上,则使用 am start 命令启动指定的应用程序,并指定要显示在指定的显示器上。在启动应用程序之后,脚本会打印一条消息,表示已经成功地启动应用程序到指定的显示器上。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)