我需要计算用户步骤,我正在使用此代码,并且效果很好
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,我进行了搜索,发现此设备可能没有计步器
那么在这种情况下我该如何检测步骤?
答案 0 :(得分:0)
尝试此代码
首先导入`实现'com.github.orangegangsters:sensorstep:1.4.2@aar'
并遵循我的存储库:
https://gitlab.com/jonathan123vazna/podometersteeps
好代码。 `