Android触摸屏位置关闭

Android触摸屏位置关闭,android,kernel-module,Android,Kernel Module,我在android上使用触摸屏(atmel maxtouch-atmel 1664s),发现我越往右边走(X越大),我的手指与屏幕上的触摸点之间的距离就越大。IDC文件、驱动程序或其他地方的设置会有问题吗?在同一屏幕上使用另一个操作系统,如Ubuntu,似乎没有这个问题 我用这个文件试图纠正这个位置,但最后一行只是把触摸屏变成了一个触摸板 touch.deviceType = touchScreen touch.orientationAware = 1 output.x = (raw.x - r

我在android上使用触摸屏(atmel maxtouch-atmel 1664s),发现我越往右边走(X越大),我的手指与屏幕上的触摸点之间的距离就越大。IDC文件、驱动程序或其他地方的设置会有问题吗?在同一屏幕上使用另一个操作系统,如Ubuntu,似乎没有这个问题

我用这个文件试图纠正这个位置,但最后一行只是把触摸屏变成了一个触摸板

touch.deviceType = touchScreen
touch.orientationAware = 1
output.x = (raw.x - raw.x.min) * (output.width / raw.width)

内核驱动程序未正确检测和报告输入X报告的可能范围

如果您使用
adb shell
并运行
getevent-il
,您应该会得到如下结果

add device 6: /dev/input/event2
  bus:      0000
  vendor    0000
  product   0000
  version   0000
  name:     "touch_dev"
  location: ""
  id:       ""
  version:  1.0.1
  events:
    ABS (0003): ABS_MT_SLOT           : value 0, min 0, max 9, fuzz 0, flat 0, resolution 0
                ABS_MT_TOUCH_MAJOR    : value 0, min 0, max 15, fuzz 0, flat 0, resolution 0
                ABS_MT_POSITION_X     : value 0, min 0, max 1535, fuzz 0, flat 0, resolution 0
                ABS_MT_POSITION_Y     : value 0, min 0, max 2559, fuzz 0, flat 0, resolution 0
                ABS_MT_TRACKING_ID    : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0
                ABS_MT_PRESSURE       : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0
  input props:
    INPUT_PROP_DIRECT
您可以在我的设备上看到,X值可以在0到1535之间

如果然后运行
getevent-trl/dev/input/event2
,在屏幕上移动手指,查看可能的最大X值,它应该对应:

[  115960.226411] EV_ABS       ABS_MT_POSITION_X    000005ee
0x5ee=1518,这是正确的

触摸控制器上有一些参数可以调整这种缩放,并且需要与内核驱动程序报告的内容同步。标准的Linux主线驱动程序不能很好地处理那些与平台数据不同步的参数。有一些补丁可以解决这一问题,但尚未向上游发展:

如果当你将手指移到最右边时,触摸仍然在屏幕上,你可以通过这样做来纠正它

output.x = raw.x / scale
其中,比例是报告坐标与所需坐标的比率。你不能反过来做,因为较低的输入层会在屏幕外丢弃报告

正确的修复方法是修复内核驱动程序中的错误,或者调整触摸控制器上的范围设置


你没有说它是什么特别的设备,所以很难进一步帮助你。

这听起来像是给某个人的bug报告员的报告。也许会更有帮助。如果这不是一个bug报告,并且您有一些代码试图纠正该行为,请发布它。我将其缩小到idc文件问题,尽管让它知道问题源可能仍然来自其他地方。这是一些很好的信息,我将开始探索。具体的触摸屏设备是atmel 1664s。