不对是遥控器切换,我的遥控器控制的是主屏还是副屏,不是显示
时间: 2023-12-30 19:06:16 浏览: 62
非常抱歉,我误解了你的意思。如果你的遥控器控制的是主屏或副屏的使用,那么你可以修改之前的脚本,将 `setprop` 命令改为调用 `wm` 命令来实现切换主屏或副屏。
具体来说,你可以使用 `wm display` 命令来切换主屏或副屏,其中 `wm display 0` 表示使用主屏,`wm display 1` 表示使用副屏。
下面是一个示例,可以实现使用 TV 键来切换主屏或副屏的使用:
```bash
#!/vendor/bin/sh
# 设置主屏幕为默认使用屏幕
wm display 0
# 启动 ConsumerIRService 服务,以便接收遥控器的输入事件
setprop ro.remotecontroller.modules consumerir
start consumer_ir_service
# 循环监听遥控器的输入事件
while true; do
# 读取遥控器的输入事件,并解析出按键码
ir_code=$(getevent -t -c 1 /dev/input/event0 | grep -oP ".*?((?<=KEYCODE_)[A-Z0-9]+).*" | awk '{print $10}')
# 如果按键码是 KEYCODE_TV,则切换主屏幕或副屏幕的使用状态
if [ "$ir_code" = "KEYCODE_TV" ]; then
if [ "$(wm display | awk '{print $2}')" = "0" ]; then
wm display 1
else
wm display 0
fi
fi
# 降低 CPU 占用率,避免过度消耗系统资源
sleep 0.1
done
```
在这个脚本中,我们使用 `wm display` 命令来切换主屏或副屏的使用状态。具体来说,我们首先使用 `wm display 0` 命令将主屏设置为默认使用屏幕,然后在循环中监听遥控器的输入事件,如果按键码是 `KEYCODE_TV`,则使用 `wm display` 命令切换主屏幕或副屏幕的使用状态。在切换状态时,我们使用 `wm display | awk '{print $2}'` 命令来获取当前使用的屏幕编号,如果当前使用的是主屏,则切换到副屏,反之亦然。
需要注意的是,这个脚本文件需要具备可执行权限,你可以使用以下命令来赋予它可执行权限:
```bash
chmod +x /vendor/bin/switch_screen
```
另外,为了让这个脚本在系统启动后自动运行,你需要将它添加到系统的开机自启动列表中。具体的实现方法可以参考我之前给你的回答中的方法。
阅读全文