我一直在使用三星 Galaxy S3 开发一个应用程序,该应用程序使用气压计来估计用户的海拔高度。我使用 SensorManager.getAltitude(p0, p),并将 p0 设置为等于最近机场报告的海平面压力。我将 p 设置为等于气压计返回的值。
不幸的是,返回的高度比实际高度系统高出 20 米左右。我确信气压计返回的压力值太低,因此 SensorManager.getAltitude 返回更高的高度。我什至开车到一个机场,在那里我得到了海平面压力,并将手机与跑道保持水平,以证明这一点。
当检查气压计的精度时(使用SensorEvent的精度字段),它返回零值,这意味着“传感器不可信”或“需要校准”(https://developer.android.com/reference/android/hardware/SensorManager.html#SENSOR_STATUS_UNRELIABLE https://developer.android.com/reference/android/hardware/SensorManager.html#SENSOR_STATUS_UNRELIABLE).
具体来说,我的问题是:
这是正常的吗?我没有其他带有气压计的设备,所以无法检查。手机如何确定其传感器“不可信任”?
有什么方法可以校准传感器吗?理想情况下,我可以检查用户气压计的准确性,然后对其进行校准(假设我知道气压值偏差了多少)。
我校准的方法是调整P0,使海拔高度与校准点的已知海拔高度相匹配。我使用各种方法来获取已知的高度,但最自动的是获取 GPS 位置,然后使用其中一种在线服务来查找高度。
通过这种方法,我不必太担心气压计的绝对精度。如果压力读数始终高出 0.5%,则实际上并不相关。只要我在静止时能够获得相对稳定的读数,我就很高兴。我应用了各种过滤,特别是在计算累积上升和下降数字时,我认为这是我为用户收集的最重要的统计数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)