Я тестирую приложение, которое отбирает данные акселерометра и обрабатывает их.
При первой установке приложения onSensorChanged() вызывается со скоростью 1/2 скорости, указанной в samplePeriodUs.
Я попытался отменить регистрацию и зарегистрировать прослушиватель SensorManager в onPause(). Один хак, который, кажется, работает, заключается в том, чтобы ввести 1/2 частоты дискретизации в onResume(). Это не может быть правильным способом ведения дел?
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sensorManager = (SensorManager) getActivity().getSystemService(Context.SENSOR_SERVICE);
accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(this, accelerometer, 20000); }
public void onResume() {
super.onResume();
sensorManager.unregisterListener(this);
sensorManager.registerListener(this, accelerometer, 10000);
}
public void onPause() {
super.onPause();
sensorManager.unregisterListener(this); }
Я ожидаю, что sensorManager.registerListener (это, акселерометр, 20000); для использования в onResume() и в onCreate()