是什么在Android的重力和加速度传感器之间的区别? 从我的观点来看,体力值是在两种情况下是相同的。
哪一个测量作用在单位质量的设备内部的力量?
加成
现在的问题是:什么物理量由这些传感器测得的? 根据等效原理的加速度和重力是无法区分的,并同时测量的唯一途径是通过常规(但3D)弹簧秤。
是什么在Android的重力和加速度传感器之间的区别? 从我的观点来看,体力值是在两种情况下是相同的。
哪一个测量作用在单位质量的设备内部的力量?
加成
现在的问题是:什么物理量由这些传感器测得的? 根据等效原理的加速度和重力是无法区分的,并同时测量的唯一途径是通过常规(但3D)弹簧秤。
加速度传感器给你回的所有力量应用到设备的总和,而重力感应器只返回重力的影响。 如果你想排除加速的严重性,您可以使用高通滤波器或加速度传感器的值只是减去重力感测数值 - 不知道哪种方法提供了更好的精度。
另一种方法可以使用Sensor.TYPE_LINEAR_ACCELERATION,这给准确(加速度 - 重力),但你应该检查它是否在设备上可用。 我发现了几个设备,具有加速度传感器的工作,但没有重力或LINEAR_ACCELERATION传感器响应。
此链接可能会有所帮助: http://www.sensorplatforms.com/which-sensors-in-android-gets-direct-input-what-are-virtual-sensors
以下摘录总结了你的问题的答案:
“列表...包括物理传感器和传感器类型与来自物理传感器导出的值,有时这些被称为虚拟传感器...的虚拟传感器类型(重力,线性加速度,和旋转矢量)提供导出的值通过组合的结果从智能物理传感器...旋转矢量是加速度计,磁力计,有时陀螺仪,以确定沿着相对于地球帧坐标的Android装置奠定了三维角度的组合。通过知道旋转矢量的装置的,加速计数据可被分离成重力和线性加速度“。
此链接https://stackoverflow.com/a/8238389/604964也说重力值使用巴特沃斯滤波器来计算。