Android 加速度计与重力传感器

Android 加速度计与重力传感器,android,accelerometer,android-sensors,gravity,Android,Accelerometer,Android Sensors,Gravity,如果设备处于运动状态,重力传感器是否返回正确的值?我认为重力传感器使用加速度计来识别重力方向。这两个传感器是不同的硬件吗?阿尔伯特·爱因斯坦在1911年回答了这个问题 稍微反省一下就会发现,惯性质量和引力质量相等定律等同于重力场赋予物体的加速度与物体的性质无关的断言。对于牛顿在引力场中的运动方程,完整写出,它是: (惯性质量)\cdot(加速度)=(重力场强度)\cdot(重力质量)。 只有当惯性质量和引力质量在数值上相等时,加速度才与物体的性质无关 -爱因斯坦 我们无法区分加速度测量和重力测量

如果设备处于运动状态,重力传感器是否返回正确的值?我认为重力传感器使用加速度计来识别重力方向。这两个传感器是不同的硬件吗?阿尔伯特·爱因斯坦在1911年回答了这个问题

稍微反省一下就会发现,惯性质量和引力质量相等定律等同于重力场赋予物体的加速度与物体的性质无关的断言。对于牛顿在引力场中的运动方程,完整写出,它是:

(惯性质量)\cdot(加速度)=(重力场强度)\cdot(重力质量)。 只有当惯性质量和引力质量在数值上相等时,加速度才与物体的性质无关

-爱因斯坦


我们无法区分加速度测量和重力测量,因为它们等同于观察者。即使安卓有两个传感器,它们也会测量相同的东西。

重力传感器是安卓称之为“软件传感器”,并使用多个硬件传感器计算其值

只有当设备带有陀螺仪时,软件重力传感器才可用。 通过将加速度计数据与陀螺仪数据相结合,可以过滤掉由于移动设备而产生的加速度,从而留下纯重力信号。所以是的,它将在运动中返回正确的值

因此,重力传感器为设备定向提供的信号比单独的加速计要好得多

组合传感器值对于高质量的测量值很重要

Android文档

不幸的是,许多Android设备缺少陀螺仪,因此也没有重力传感器。这使得您仅通过加速计就可以获得次优信号,与具有两个传感器的Android设备相比,用户体验质量较低,而与iOS设备相比,用户体验质量较低

您可以使用Google Play要求规范阻止不兼容设备上的安装,如下所示:

<uses-feature android:name="android.hardware.sensor.gyroscope" />


当设备静止时,重力传感器的输出应与加速计的输出相同从文档中可以看出,为什么在设备运动时不一样呢?提供了公认的答案,没有看到实际的源代码,我只能猜测软件重力传感器试图猜测由于地球重力引起的加速度分量,使用地球表面作为参考框架。最后,这就是日常生活中运动的定义。如果传感器在一段时间内运行,如果检测到加速度恒定在9.8m/s2的周期,则可以猜测重力方向。你可以简单地跟踪9.8m/s2加速度相对于设备可能指向的方向。