【发布时间】:2018-07-30 12:09:20
【问题描述】:
我需要用步数和距离信息来计算速度!
谁能指导我如何做到这一点,我认为这是使用公式的一种方式
S = VT 但在这种情况下,我需要每一步的时间来计算每一步的velocity ..我已经看过 stackoverflow 但没有解决问题。
谢谢。
在这段代码中,我通过 TYPE_COUNTER_STEP 计算步数,并通过获取人的身高并将其乘以 0.45 再乘以步数来计算距离
public void registerForSensorEvents() { SensorManager sManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
// Step Counter
sManager.registerListener(new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
float steps = event.values[0];
arrayList.add((int)steps);
getCurrentStepValue = (int) steps ;
stepValue.setText(getCurrentStepValue - arrayList.get(0) + "");
double distaneCovered = step_length * (getCurrentStepValue - arrayList.get(0));
distanceValue.setText("" + distaneCovered);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}, sManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER),
SensorManager.SENSOR_DELAY_NORMAL);
}
【问题讨论】:
-
是的,您需要时间信息。你需要什么精度?你考虑过
getTime( )吗?它应该允许毫秒分辨率,至少在返回值中;不确定您是否真的可以读取每一毫秒。你有什么反对的理由?您期望的步骤频率是多少? -
计算步数的精度非常好,我用步数计算距离乘以 0.415*人高,但我不知道如何按步数获得时间!!我可以使用 STEP_DETECTOR 获得时间吗?
-
你期望的步频是多少?