我一直在使用三星Galaxy S3开发一个应用程序,该应用程序使用气压计估算用户的海拔高度。我使用SensorManager.getAltitude(p0, p),并将p0设置为最近机场报告的海平面气压值。我将p设置为气压计返回的值。
不幸的是,返回的高度比实际高度高了大约20米。我确信气压计返回的压力值太低,因此SensorManager.getAltitude返回更高的高度。我甚至开车去过一次机场,获取海平面气压值,并将我的手机放置在跑道上,以证明这一点。
检查气压计的准确性(使用SensorEvent的accuracy字段)时,它返回零,这意味着“传感器不可靠”或“需要校准” (https://developer.android.com/reference/android/hardware/SensorManager.html#SENSOR_STATUS_UNRELIABLE)。
具体来说,我的问题如下:
这种情况正常吗?我没有另一台带有气压计的设备,所以无法检查。手机如何确定其传感器“不可信”?
是否有任何方法可以校准传感器?理想情况下,我可以检查用户的气压计的准确性,然后进行校准(假设我知道气压值的偏差有多大)。