我正在尝试在 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);
}
谢谢