コンパスの実装コードの2つの方法、どのように使用します

863 ワード

羅針盤の先進的な方法を紹介するブログですが、実際には使えません.
使えない理由としては、このonSensorChanged(SensorEvent event)メソッド呼び出しがここで問題になっているため、彼は想像していたようにセンサのタイプによってif文で制御できるわけではなく、磁気センサと加速度センサを併用する場合、onSensorChanged(SensorEvent event)法による磁気センサの傍受周波数が加速度センサよりはるかに大きいと、後のSensorManagement.getRotationMatrix(R,null,accelerometerValues,magneticFieldValues)メソッドのaccelerometerValuesはずっとデータを受信していない状態で、このように全体の過程が歩けない~だからやはり最も原始的な方向センサを使いましょう、
sm = (SensorManager) getSystemService(SENSOR_SERVICE);

sm.registerListener(this, SensorManager.SENSOR_ORIENTATION,SensorManager.SENSOR_DELAY_GAME);

方向センサの欠点についても、最初の伝送のデータが正確ではなく、1秒近く続いていることが明らかであるため、比較的正確なデータが必要であれば、最初から方向センサを開いて、後でログアウトしないほうがいい.