アプリケーション用のコンパスを作成する必要があります。
ドキュメントを読むと、これを行うには 2 つの合理的な方法があるようです。
- Sensor.TYPE_ORIENTATION メソッド: これは簡単な方法です。これに関する問題は、正確ではないことです。私の測定値を Snaptic Compass と比較すると、約 10 ~ 15 度ずれており、私の目的では受け入れられません。
- Sensor.TYPE_ACCELEROMETER、Sensor.TYPE_MAGNETIC_FIELD、および getRotationMatrix() を remapCoordinateSystem() および getOrientation() メソッドと組み合わせて使用する場合: ドキュメントには、これは「通常はより正確である」と記載されています。問題は、リスナーに登録する遅延に関係なく、デバイスが平らな面に静止していてもコンパスが狂ってしまうことです。
この問題を解決するための提案は大歓迎です。