安卓触摸屏IDC



我很难在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>

我还启用了Developer options(Android设置)中的Pointer Location选项,以便调试这一阶段的校准。

设置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文件(设置1需要对此触摸设备进行校准

我尝试了许多来自其他IDC文件(互联网示例)和android来源的组合-IDC-任何其他属性工具效果(不是单个)-raw.*output.*touch.size.*

有人知道如何在安卓系统中正确校准触摸屏吗?

此处相同,

但我的校准应用程序什么都没做。

过了一段时间,在阅读/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

只需手动运行这些命令,重新启动并启动校准应用程序

相关内容

  • 没有找到相关文章

最新更新