0

私は私の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を定義しても、同じ話です。

4

1 に答える 1

1

ため息をつく私は...。

重力=event.values; それを指してください。次のような単純なループ:

for (int i=0 ; i<3 ; i++) {
            gravity[i] = event.values[i];
}

そしてそれは大丈夫です(なぜ私はどこかで尋ねた後にいつも解決策を見つけました...)

于 2010-11-22T11:04:18.153 に答える