我在这两个源代码中找到了两个例子,但是sensorEvent.java说“当设备平放在桌子上并且向左推向右侧时,x加速度值为正。”和sensorListener.java说“当设备被向左侧推向右侧时,x加速度值为负(设备向左侧施加反作用力)”。您可以向上滚动以查看坐标系的定义,您可以发现它们是相同的。所以我很困惑。
原因我做了一个实验,只是将手机左侧向右推,我看到x轴正在上升。
那么,示例中是否存在错误或者我错过了哪些内容?
答案 0 :(得分:0)
据我所知,SensorEvent
中的陈述是正确的 - 由您自己的实验说明。 SensorListener
已经被弃用了很长时间(至少两年 - 它已被SensorEventListener
替换),因此您应该假设未弃用的语句是正确的。
我的猜测是,在Android的早期阶段,加速度值曾经被镜像,因为这两个类中提到的其他一个示例之间的差异与您感到困惑的类似:
当前(在SensorEvent中):
当设备平放在桌子上时,加速度值为+9.81, 对应于设备的加速度(0 m / s ^ 2)减去 重力(-9.81 m / s ^ 2)。
不推荐使用(在SensorListener中):
当设备平放在桌子上时,加速度值为 -STANDARD_GRAVITY,对应于设备在响应重力时施加在桌面上的力。
-STANDARD_GRAVITY
解析为 - (9.80665)= -9.80665,与SensorEvent中指出的正值完全相反。