如何检测安卓设备上IR触摸框所使用的驱动程序?
解决安卓IR触摸框驱动检测与触控旋转问题
嘿,我来帮你一步步搞定这个问题~安卓上查触摸设备驱动和桌面Linux不太一样,lsusb确实只会显示设备ID,不会直接关联驱动,试试下面这些方法:
一、检测触摸设备的驱动信息
1. 用getevent定位触摸设备
首先确保你的安卓设备开启了ADB调试,然后在电脑上执行:
adb shell getevent -l
这个命令会列出所有系统输入设备,你要找带有ABS_MT(多点触控标识)或者ABS_X/ABS_Y属性的设备,记下它的路径(比如/dev/input/event5),这就是你的IR触摸框对应的设备节点。
2. 查看设备的驱动关联信息
针对找到的eventX设备,执行以下命令查看其驱动信息:
adb shell cat /sys/class/input/eventX/device/uevent
输出里的DRIVER字段会明确显示驱动名称——如果是通用触控设备,可能会显示hid-multitouch;如果是厂商定制的驱动,会有专属名称。
3. 从内核日志找驱动加载记录
如果有root权限,还可以看内核启动时的驱动加载日志:
adb shell dmesg | grep -i touch
或者针对HID类设备搜索:
adb shell dmesg | grep -i hid
日志里会记录触摸框被识别、驱动模块加载的完整过程,能帮你确认驱动细节。
二、解决触控90度旋转问题
其实很多时候旋转问题不是驱动本身的问题,而是坐标映射的问题,你可以先试试这些调整:
1. 验证坐标映射是否异常
用getevent实时查看触摸坐标:
adb shell getevent -t eventX
触摸屏幕时,会输出X/Y轴的数值,对比你设备的屏幕分辨率(比如1920×1080),如果触摸时X轴的范围对应屏幕的Y轴,那就是轴被交换了,这就是旋转90度的原因。
2. 调整坐标映射参数
如果是系统层面的映射问题,有几种处理方式:
- 修改IDC配置文件(需要root):在
/system/usr/idc/目录下找对应触摸设备的IDC文件(文件名通常是Vendor_XXXX_Product_XXXX.idc,XXXX是设备的VID/PID),修改文件里的touch.rotation参数为90,或者交换X/Y轴的映射配置。 - 通过系统属性调整:部分设备支持用
setprop临时调整,比如:
重启设备后看是否生效。adb shell setprop persist.sys.touchrotation 90
如果以上方法都不行,可能需要联系触摸框厂商获取适配的驱动或配置文件,毕竟有些定制化设备需要专属的驱动支持。
内容的提问来源于stack exchange,提问作者Krystian




