携帯電話のセンサーで測定した磁場の3つの座標値を取得したいと思います。このために、を使用してハンドルを取得し、次にSensorManager
を使用しsm=(SensorManager)getApplicationContext().getSystemService(Context.SENSOR_SERVICE)
てセンサーを取得しcm=sm.getDefaultSensor(SensorManager.SENSOR_MAGNETIC_FIELD)
ます。SensorEventListener
次に、をに登録SensorManager
しsm.registerListener(new SensorListener(),cm,SensorManager.SENSOR_DELAY_UI)
ます。
このクラスSensorListener
は、SensorEventListener
インターフェイスを実装する私自身のクラスです。そのOnSensorChanged
方法では、センサーから値を取得して表示します。問題は、値が1,0と0しか得られないことです。また、それらが更新されることはめったにありません(onSensorChanged
更新が行われる頻度を確認するために、呼び出しにカウンターを配置しました)。時間を変更してSENSOR_DELAY_NORMAL
も何も改善されません。
問題が磁気センサーに関連しているかどうかを確認するために、同じように、加速度センサーにリスナーを追加しました。結果は非常に紛らわしいです。現在、磁気センサーは更新を生成しますが、加速度計の更新は生成しません。また、加速度センサーイベントリスナーを削除しても、加速度センサーイベントリスナーを追加する前に欠落していた磁気センサーイベントを受信します。(???????????)
私のコードの何が悪いのかについて何か考えはありますか?