我一直在使用三星 Galaxy S3 开发一个使用气压计估计用户高度的应用程序。我使用 SensorManager.getAltitude(p0, p),并设置 p0 等于最近机场报告的海平面压力。我设置 p 等于气压计返回的值。
不幸的是,返回的高度系统性地比实际高度高出 20 米左右。我确定气压计返回的压力值太低,因此 SensorManager.getAltitude 正在返回更高的高度。为了证明这一点,我什至开车去了一个机场,从那里我得到了海平面压力,并将我的手机与跑道齐平。
在检查气压计的精度时(使用 SensorEvent 的精度字段),它返回值为零,表示“传感器不可信”或“需要校准”(https://developer.android.com/参考/android/hardware/SensorManager.html#SENSOR_STATUS_UNRELIABLE)。
具体来说,我的问题是:
这是正常的吗?我没有其他带气压计的设备,所以无法检查。手机如何确定其传感器“不可信”?
有什么方法可以校准传感器吗?理想情况下,我可以检查用户气压计的准确性,然后对其进行校准(假设我知道气压值偏离了多少)。