如何在没有内置计步器的手机中计算步数

时间:2018-10-11 13:40:36

标签: android android-sensors

我需要计算用户步骤,我正在使用此代码,并且效果很好

    SensorManager sManager;
    Sensor stepSensor;

        sManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        stepSensor = sManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR);

           sManager.registerListener(this, stepSensor, SensorManager.SENSOR_DELAY_FASTEST);

@Override
    public void onSensorChanged(SensorEvent event) {
        Sensor sensor = event.sensor;
        float[] values = event.values;
        int value = -1;

        if (values.length > 0) {
            value = (int) values[0];
        }


        if (sensor.getType() == Sensor.TYPE_STEP_DETECTOR) {
steps++;  }
            }
        }
    }

但在某些设备中

stepSensor = sManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR);

返回null,我进行了搜索,发现此设备可能没有计步器

那么在这种情况下我该如何检测步骤?

1 个答案:

答案 0 :(得分:0)

尝试此代码

首先导入`实现'com.github.orangegangsters:sensorstep:1.4.2@aar'

并遵循我的存储库:

https://gitlab.com/jonathan123vazna/podometersteeps

好代码。 `