Moto 360 で最高のサンプルレートでジャイロスコープと linear_acclerometer の両方のデータを読み取ろうとしています。ハンドヘルドのボタンを押すと、時計にセンサーが登録され、すべてのセンサー データのログが開始されます。別のボタンを押すと、時計はこれらのセンサーの登録を解除し、ログを停止します。
ただし、センサー値が一定値になる場合があります。時計を再起動すると、センサーが機能し始め、意味のあるセンサー値が再び生成されることがわかりました。
誰かが同様の問題に遭遇したか、なぜこれが起こるのかについていくつかのアイデアを持っていますか?
private void startSensorListeners() {
Log.d(TAG, "startSensorListeners");
isCollecting = true;
//Register the motion Sensor Listener
mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE), SENSOR_DELAY);
mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION), SENSOR_DELAY);
}
public void stopSensorListeners() {
isCollecting = false;
mSensorManager.unregisterListener(this);
}
public final void onSensorChanged(SensorEvent event) {
if(!isCollecting){
mSensorManager.unregisterListener(this, event.sensor);
return ;
}
// Save sensordata into local files, I also output the values[] in event on the logcat to monitor the sensor values in the realtime.
saveData(event);
}
ありがとう