这个脚本获取不到红外遥控输入设备的硬件路径
时间: 2024-02-09 13:12:47 浏览: 31
如果上面的脚本获取不到红外遥控输入设备的硬件路径,可能是因为您的设备中没有名为 `ir-hw` 的红外遥控输入设备,或者该设备没有被正确地识别。
您可以尝试使用 `ls /sys/class/input` 命令来查看设备中可用的输入设备列表。如果您找不到名为 `ir-hw` 的设备,您可以尝试查找其他可能的红外遥控输入设备。在某些设备上,红外遥控输入设备可能被识别为 `event[0-9]+` 或 `event[0-9]+/input*`。您可以使用类似于以下命令来查找红外遥控输入设备:
```sh
find /sys/class/input -name "*rc*"
```
如果您找到了红外遥控输入设备,可以将命令中的 `/ir-hw` 修改为相应的硬件路径,例如 `/inputX/ir-hw` 或 `/inputX`,然后再次运行脚本。
如果您仍然无法找到红外遥控输入设备或者无法正确地识别该设备,请确保您的设备已经连接了红外遥控器,并且已经启用了红外遥控功能。一些设备可能需要在设置中手动激活红外遥控功能,或者需要安装特定的驱动程序或应用程序来支持红外遥控功能。
相关问题
这个脚本还要加上红外遥控控制来切换的
好的,我来提供一个 shell 脚本实现的通过红外遥控器来控制切换主副屏的示例,并加上注释以便理解。
```sh
#!/bin/sh
# 定义 adb 命令
get_display_state_cmd="dumpsys display | grep mDisplayId"
control_main_display_cmd="service call window 27 i32 0"
control_sub_display_cmd="service call window 27 i32 1"
# 定义红外遥控器键值与操作的对应关系
KEY_MAIN_DISPLAY="0x45"
KEY_SUB_DISPLAY="0x46"
ACTION_MAIN_DISPLAY="$control_main_display_cmd && echo 'Switch to main-display.'"
ACTION_SUB_DISPLAY="$control_sub_display_cmd && echo 'Switch to sub-display.'"
KEY_ACTION_MAP="$KEY_MAIN_DISPLAY:$ACTION_MAIN_DISPLAY $KEY_SUB_DISPLAY:$ACTION_SUB_DISPLAY"
# 循环监听红外遥控器事件
while true; do
event=$(getevent -l /dev/input/event0 | grep -o "value.*")
if [ "$event" ]; then
# 解析红外遥控器事件,执行相应的操作
key=$(echo "$event" | awk '{print $2}')
action=$(echo "$KEY_ACTION_MAP" | grep "^$key:" | awk -F: '{print $2}')
if [ "$action" ]; then
adb shell "$action"
fi
fi
done
```
说明:
1. 该示例使用 shell 脚本编写,并通过 adb 命令和 getevent 命令实现了对主副屏的切换操作。
2. 该示例定义了三个 adb 命令:一个用于获取当前显示状态,另外两个用于控制主屏和副屏的切换。
3. 该示例定义了红外遥控器键值与操作的对应关系,使用空格分隔不同的键值与操作,使用冒号分隔键值和操作。
4. 该示例使用 while 循环来不断监听红外遥控器事件,并解析键值并执行相应的操作。
5. 该示例可以保存为 shell 脚本文件,然后通过终端来执行。在执行前,请确保已经连接了 Android 设备,并且已经启用了 USB 调试模式,同时确保红外遥控器已经连接到 Android 设备并且已经产生了事件。
Android12 监听红外遥控KEY_PREVIOUSSONG按键,shell脚本
要在 Android 12 中使用 shell 脚本来监听红外遥控的 KEY_PREVIOUSSONG 按键,您可以使用以下命令:
```
# 获取红外遥控输入事件
getevent -q | grep -E 'event[0-9]+/ir-hw'
# 监听事件并执行自定义脚本
getevent -q /dev/input/eventX | while read line; do
if [[ "$line" =~ "KEYCODE_MEDIA_PREVIOUS" ]]; then
# KEY_PREVIOUSSONG 按键被触发
# 在这里添加您的自定义脚本
fi
done
```
这里的 `/dev/input/eventX` 是您在第一行命令中获取到的红外遥控输入事件的路径。在第二行命令中,您可以使用 `while` 循环来监听输入事件并执行自定义脚本。在 `if` 语句中,您可以检查是否是 KEY_PREVIOUSSONG 按键被触发,并在其中添加您的自定义脚本。
请注意,使用 shell 脚本来监听红外遥控的 KEY_PREVIOUSSONG 按键需要 root 权限。
相关推荐
![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)