【问题标题】:How to calculate speed with steps and distance TYPE_STEP_COUNTER如何使用步数和距离 TYPE_STEP_COUNTER 计算速度
【发布时间】: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 获得时间吗?
  • 你期望的步频是多少?

标签: java android


【解决方案1】:

您应该在第一步中获取初始标记,在第二步中获取“现在”和初始标记之间的差异,然后您将有时间/步骤,将初始标记重置为“现在”并在以下步骤中执行相同操作.

您也可以简单地拥有一个计时器并在 X 秒内计算步数(即距离)而不是时间/步数,这取决于您真正需要做什么。

【讨论】:

  • 如果我按照你所说的计算时间,而我已经没有步骤了!如你所说,我怎样才能得到距离?这没有任何意义
  • 阿维拉感谢您的建议,我应用了该方法,但我的时间差值以秒为单位非常小,当我使用 s= vt 获得速度时,我得到无穷大..任何想法
猜你喜欢
  • 2013-07-08
  • 2022-08-23
  • 1970-01-01
  • 2011-01-08
  • 1970-01-01
  • 1970-01-01
  • 2014-03-08
  • 1970-01-01
  • 2017-08-29
相关资源
最近更新 更多