気圧計を使用してユーザーの高度を推定するアプリで作業するために、Samsung Galaxy S3 を使用しています。SensorManager.getAltitude(p0, p) を使用し、p0 を最寄りの空港で報告された海面気圧に等しく設定します。p を気圧計から返された値に等しく設定します。
残念ながら、返される高度は、実際よりも体系的に 20 メートルほど高くなります。気圧計が低すぎる圧力値を返していることは確かなので、SensorManager.getAltitude はより高い高度を返しています。この点を証明するために、私は海面気圧を取得し、携帯電話を滑走路と同じ高さに置いた空港まで車で行きました.
(SensorEvent の accuracy フィールドを使用して) 気圧計の精度をチェックすると、0 の値が返されます。これは、「センサーを信頼できない」または「キャリブレーションが必要です」( https://developer.android.com/ reference/android/hardware/SensorManager.html#SENSOR_STATUS_UNRELIABLE )。
具体的には、私の質問は次のとおりです。
これは正常ですか?気圧計付きの別のデバイスを持っていないので、確認できません。電話はセンサーが「信頼できない」とどのように判断しますか?
センサーを校正する方法はありますか?理想的には、ユーザーの気圧計の精度をチェックしてから、それを調整することができました (気圧計の値がどれだけずれているかを知っていると仮定して)。