Я делаю фитнес-приложение, которое использует количество шагов для измерения расстояния. Я пытаюсь использовать метод sensorManager.requestTriggerSensor()
, чтобы получить начальный счетчик шагов при запуске приложения. Тем не менее, мой код возвращает false, то есть датчик не сработал. Я успешно реализовал SensorEventListener
, который я использую для продолжения подсчета шагов. Мой фрагмент кода выглядит следующим образом, аналогично документации
private SensorManager mSensorManager;
private Sensor sensorStepCounter;
private TriggerEventListener triggerEventListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
triggerEventListener = new TriggerEventListener() {
@Override
public void onTrigger(TriggerEvent event) {
float initialSteps = event.values[0];
Log.d(TAG, "initial Steps: " + Arrays.toString(event.values));
}
};
sensorStepCounter = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
....
}
@Override
protected void onResume() {
...
boolean triggered = mSensorManager.requestTriggerSensor(triggerEventListener, sensorStepCounter);
}
Или есть другой способ получения текущих данных датчика, таких как количество шагов, при запуске приложения?