getevent -t /dev/input/event0 [ 2821.032672] 0001 00a5 00000001
时间: 2024-01-05 16:02:47 浏览: 128
这个 `getevent` 输出的信息只包含了一个长度为 8 字节的十六进制数值,没有提供按键码信息,可能是因为设备文件 `/dev/input/event0` 发生了变化。你可以尝试使用以下命令来查找当前连接的输入设备:
```
cat /proc/bus/input/devices
```
这个命令会输出所有输入设备的信息,包括设备名称、设备类型、设备文件等。你可以查找 `event` 类型的设备,找到与键盘相关的设备文件,然后将脚本中的 `/dev/input/event0` 修改为对应的设备文件。另外,由于不同的 Android 系统可能存在差异,你需要根据实际情况修改脚本中的按键码。
相关问题
getevent -t /dev/input/event0 [ 2821.032672] 0001 00a5 00000001 应该不是说键值应该是这个获取到的00a5
是的,你说的对,`getevent -t /dev/input/event0` 命令输出的信息中的 `00a5` 是按键值,而不是按键码。在 Android 系统中,按键值和按键码是不同的。按键值是指按键所对应的 ASCII 码或 Unicode 码,而按键码是指硬件设备将按键转换为数字信号后所对应的数字码。因此,需要根据设备的输入系统来确定按键码和按键值的对应关系。
在 rk3588 Android 12 系统中,可以使用以下命令来查看 `/dev/input/event0` 设备文件对应的按键码和按键值:
```
getevent -p /dev/input/event0
```
这个命令会输出所有 `/dev/input/event0` 设备文件接收到的事件信息,包括按键码和按键值。你可以按下 `KEY_PREVIOUSSONG` 按键,观察 `getevent` 命令输出的信息,记录下对应的按键码和按键值。
在确认了 `/dev/input/event0` 设备文件对应的按键码和按键值之后,可以将上面的脚本中的 `keyvalue` 变量修改为对应的按键值,然后再次运行脚本。
#!/system/bin/sh # 指定需要监听的键值 keyvalue="00a5" # 监听 /dev/input/event0 设备文件 getevent -t /dev/input/event0 | while read line; do value=$(getevent -t -c 1 /dev/input/event0 | grep -oE '00a5' | tail -n 1) if [ "$value" = "$keyvalue" ]; then echo "Button KEY_PREVIOUSSONG is pressed." fi don
抱歉,我之前漏掉了结尾的 done 关键字,导致代码有语法错误。以下是修改后的代码:
```
#!/system/bin/sh
# 指定需要监听的键值
keyvalue="00a5"
# 监听 /dev/input/event0 设备文件
getevent -t /dev/input/event0 | while read line; do
value=$(getevent -t -c 1 /dev/input/event0 | grep -oE '00a5' | tail -n 1)
if [ "$value" = "$keyvalue" ]; then
echo "Button KEY_PREVIOUSSONG is pressed."
fi
done
```
在代码中,我们使用 getevent 命令监听 /dev/input/event0 设备文件,并使用 while 循环读取事件信息。在 while 循环中,使用 getevent 命令获取一个事件信息,并使用 grep 命令筛选出按键按下事件,并解析事件信息获取按键的 value 值。然后,判断该值是否等于指定的键值。如果相等,则输出相应信息。
阅读全文