我正在努力校准Android平台上的触摸屏。
这是一款来自厂商0dfc和产品0001的USB单触控触摸屏,并通过dmesg进行了检查。
<6>[ 4118.091541] input: USB Touchscreen 0dfc:0001 as /devices/platform/usb20_host/usb2/2-1/2-1.3/2-1.3:1.0/input/input23我正在推动Vendor_0dfc_Product_0001.idc文件/data/system/devices/idc/ (遵循android源代码- IDC的文档)
我有一个触摸设备,所有的要求都是针对单个触摸事件的:
root@android:/ # getevent -il /dev/input/event3
add device 1: /dev/input/event3
bus: 0003
vendor 0dfc
product 0001
version 0202
name: "USB Touchscreen 0dfc:0001"
location: "usb-usb20_host-1.3/input0"
id: ""
version: 1.0.1
events:
KEY (0001): BTN_TOUCH
ABS (0003): ABS_X : value 540, min 0, max 32767, fuzz 0, flat 0, resolution 0
ABS_Y : value 289, min 0, max 32767, fuzz 0, flat 0, resolution 0
input props:
<none>我还启用了Pointer Location选项从Developer options (安卓设置),以调试这一阶段的校准。
设置1
touch.deviceType = touchScreen使用这个设置(1),触摸屏上的所有手势都发生在左上角的上--无论手势(滑动),只有几个像素(左/右/上/下)。所有的触摸屏都会有活动。所有的手势都是相反的--当向左滑动指针时,指针向右滑动;当滑动时,指针向下移动。
安装2
touch.deviceType = pointer
touch.gestureMode = pointer使用此设置(2),如预期的那样,它将显示一个指针,放置在最后一个指针设备左侧的位置(鼠标)。触摸屏上的所有手势(无论滑动大小)都像安装1一样不停地移动--每次滑动事件只移动几个像素,并以相反的轴移动。
安装3
touch.deviceType = pointer
touch.gestureMode = spots使用此设置(3),其结果与安装2相同。我这么做只是为了证明IDC文件的解释是正确的。
在这个阶段,正如您现在可以检查的那样,我有一个工作 IDC文件(setup 1) ,需要对这个触摸设备进行校准。
我尝试了许多来自其他IDC文件(internet示例)和android源代码- IDC -的组合--任何其他属性都生效了(而不是一个)-- raw.*、output.*、touch.size.*。
有谁知道如何在Android中正确校准触摸屏,从而指导我在这个过程中呢?
发布于 2015-10-16 17:54:15
在这里也一样,
但我的校准应用什么都没做。
过了一段时间,我发现了/system/etc/init.sh:
mkdir -p /data/misc/tscal
touch /data/misc/tscal/pointercal
chown 1000.1000 /data/misc/tscal /data/misc/tscal/*
chmod 775 /data/misc/tscal
chmod 664 /data/misc/tscal/pointercal只需手动运行这些命令,重新启动,并启动校准应用程序即可。
https://stackoverflow.com/questions/26021616
复制相似问题