Android:如何处理不准确的baromters?

时间:2013-07-26 02:06:19

标签: android sensor calibration altitude sensormanager

我一直在使用三星Galaxy S3来处理使用气压计估算用户高度的应用程序。我使用SensorManager.getAltitude(p0,p),并将p0设置为等于最近机场报告的海平面压力。我将p设置为等于气压计返回的值。

不幸的是,返回的高度系统地比实际高20米左右。我确定气压计返回的压力值太低,因此SensorManager.getAltitude返回的海拔更高。我甚至开车去了一个机场,从那里我得到了海平面的压力,并将我的手机水平放在跑道上,以证明这一点。

当检查气压计的精度(具有SensorEvent的精度字段)时,它返回零值,这意味着“传感器不可信任”或“需要校准”(https://developer.android.com/reference/android/hardware/SensorManager.html#SENSOR_STATUS_UNRELIABLE)。

具体来说,我的问题是:

  1. 这是正常的吗?我没有带气压计的其他设备,所以我无法检查。手机如何确定它的传感器“无法信任”?

  2. 有没有办法校准传感器?理想情况下,我可以检查用户气压计的准确度,然后进行校准(假设我知道气压值偏差了多少)。

1 个答案:

答案 0 :(得分:0)

我用于校准的方法是调整P0以使高度与校准点处的已知高度相匹配。我使用各种方法来获得已知的高度,但最自动的是获得GPS位置,然后使用其中一个在线服务来查找高度。

通过这种方法,我不必太担心气压计的绝对精度。如果压力总是高达0.5%,这并不是真正相关的。只要我能在静止时获得相对稳定的读数,我很高兴。我应用各种过滤特别是在计算累积上升和下降数字时,我认为这是我为用户收集的最重要的数据。