如何以步长和距离计算速度TYPE_STEP_COUNTER

时间:2018-07-30 12:09:20

标签: java android

我需要根据步数和距离覆盖范围的信息来计算速度! 任何人都可以指导我如何使用公式来实现这一目标 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);

}

1 个答案:

答案 0 :(得分:0)

您应该首先进行初始印章制作,第二步进行“现在”与初始印章之间的区别,然后您将有时间/步骤,将初始印章重置为“现在”并在以下步骤中进行相同操作

同样,您只需拥有一个计时器并以X秒为单位计算步数(即距离),而不是时间/步,这取决于您真正需要做的事情。