背景:
我正在 Android 上制作一个小测试应用程序,它只在屏幕上显示应用程序可以感知到的所有手指触摸屏幕的所有数据。它与此类似,但适用于所有触摸,而不仅仅是一个。Android 触摸事件包含大量数据(根据此文档),包括位置、方向、压力、大小和椭圆轴长度。
问题:
我的应用程序的每个 MotionEvent 都会收到针对每个指针索引 i 的 getSize(i)、getTouchMajor(i) 和 getTouchMinor(i) 的报告 0(零)。但它报告了合理的、非零的位置和压力值,所以有些东西工作正常。文档似乎暗示这意味着硬件不支持该信息,但我对此持怀疑态度,原因有两个。
- 我正在测试的设备是 Galaxy Tab II,我认为它非常漂亮。(我在网上搜索了是否可以找到各种 Android 设备支持 MotionEvents 的功能列表,但没有找到这样的列表。)
- 我使用 Java 方法 InputDevice.getMotionRanges() 来测试设备是否支持尺寸和主轴/次轴,这些结果表明设备确实支持这些轴(我得到的尺寸:0.0-1.0,主要/次要:0.0-1509.437每个)。
问题:
- 我是否认为 Galaxy Tab II 支持 MotionEvent 的大小和长轴/短轴特性是正确的,如果是这样,为什么我不能从实际的 MotionEvents 中获取这些数据?(我的代码与上面链接的代码非常相似。)
- 如果此平板电脑实际上不支持这些轴,您能否推荐我可以在上面执行此操作的 Android 平板电脑,它会给我 MotionEvent 大小和椭圆轴长度?
提前感谢您提供的任何帮助!
编辑:同事在 Galaxy Tab 上测试应用程序我得到了所有数据,没有丢失。设备之间是否存在一些配置/设置差异?Galaxy Tab 会从 I 降级到 II 似乎很奇怪……