私は私のHTCの欲求で一種の奇妙な問題を抱えていました。
私は現在、加速度計と地磁気センサーを使用して、いくつかのopenglをテストしています。
それらの2つは時々(かなりの数)まったく同じ値を返すようです。
onSensorChanged()でこれを取得しました
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
gravity = event.values;
}
if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
geomagnetic = event.values;
}
理由はわかりませんが、USBを(コンピューターに)抜くと悪化します(これらの値を使用して、スカイマップなどのオブジェクトの周りでカメラを回転させます。抜くと、値が正しいように見えます2秒に1回〜)。
また、場合によっては(usbを接続し、logcatを見ると)問題なく動作し、2つのセンサーから同じ値を取得することはありません。
それは私のデバイスではありません。スカイマップのような他のプログラムは正常に動作しますが、間違っていることがわかりません。私は2つの配列重力と地磁気を混同したことはありません。それらはグローバルであり、SensorManager.getRotationMatrix(R、gravity、geomagnetic)で使用されます。
値を取得する速度が速すぎないかどうか疑問に思っていますが、リスナーでSENSOR_DELAY_UIを定義しても、同じ話です。