我正在使用安卓传感器,特别是TYPE_STEP_COUNTER。 TYPE_STEP_COUNTER返回的值不断增加,无法重置(据我所知)。我需要做的是从用户按下按钮的位置获取步数。
我愿意:
int steps = overallTotal - totalWhenButtonPressed
如何获取totalWhenButtonPressed值?
我无法totalWhenButtonPress = event.values[0]
因为价值不断变化。
答案 0 :(得分:0)
它应该大致像这样工作
movnt
您需要将当前传感器存储在private int mLatestValue;
private int mButtonPressedValue;
void onCreate(..) {
Sensor stepCtr = sm.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
sm.registerListener(mSensorCounter, stepCtr, SensorManager.SENSOR_DELAY_NORMAL);
Button button = button.setOnClickListener(mButtonClick);
}
private OnClickListener mButtonClick = new OnClickListerner() {
public void onClick(View view) {
mButtonPressedValue = mLatestValue;
}
}
private SensorEventListener mSensorCounter = new SensorEventListener() {
public void onSensorChanged(SensorEvent event) {
mLatestValue = Math.round(event.values[0]);
txtStepVals.setText("CurrSteps = " + mLatestValue + "\nSteps: " + (mLatestValue - mButtonPressedValue));
}
};
之外,以便在按下按钮后存储该值。然后简单地比较按下按钮时存储的值。
答案 1 :(得分:0)
我能够通过使用TYPE_STEP_DETECTOR解决问题。我没有尝试在某个时间点获取数字,而是在操作发生时更新了数字。以下代码来自SensorEventListener的onSensorChanged方法
currSteps = currSteps + Math.round(event.values[0]);
TextView txtSessionStepVals = (TextView) findViewById(R.id.txtSessionStepValues);
txtSessionStepVals.setText("Steps this Session: " + currSteps);