【发布时间】:2014-04-01 21:11:13
【问题描述】:
如果设备处于运动状态,重力传感器是否会返回正确的值?我认为重力传感器使用加速度计来识别重力方向。这两个传感器是不同的硬件吗?
【问题讨论】:
标签: android accelerometer android-sensors gravity
如果设备处于运动状态,重力传感器是否会返回正确的值?我认为重力传感器使用加速度计来识别重力方向。这两个传感器是不同的硬件吗?
【问题讨论】:
标签: android accelerometer android-sensors gravity
重力传感器是 Android 所称的“软件传感器”,它使用多个硬件传感器计算其值。
仅当设备具有陀螺仪时,软件重力传感器才可用。 通过将加速度计数据与陀螺仪数据相结合,可以滤除由于移动设备而产生的加速度,从而留下纯重力信号。所以是的,它会在运动时返回正确的值。
因此,重力传感器比单独的加速度计提供更好的设备方向信号。
组合传感器值称为sensor fusion,对于高质量的测量值很重要。
Android 文档describes the Gravity Sensor。
不幸的是,许多 Android 设备没有陀螺仪,因此也没有重力传感器。这会使您仅从加速度计获得次优信号,与具有两个传感器的 Android 设备相比,用户体验质量较差,与 iOS 设备相比,用户体验质量较差。
您可以使用以下 Google Play 要求规范来阻止在不兼容设备上的安装:
<uses-feature android:name="android.hardware.sensor.gyroscope" />
【讨论】:
阿尔伯特·爱因斯坦在 1911 年回答了这个问题
稍加思考就会发现,惯性质量和引力质量相等定律等价于引力场赋予物体的加速度与物体的性质无关的断言。对于牛顿在引力场中的运动方程,完整的写出来是:
(惯性质量)\cdot(加速度)=(引力场强度)\cdot(引力质量)。 只有当惯性质量和引力质量在数值上相等时,加速度才与物体的性质无关。
——阿尔伯特·爱因斯坦
我们无法区分加速度的测量和重力的测量,因为它们等同于观察者。即使 Android 有两个传感器,它们也会测量相同的东西。
【讨论】: