参考博客:
Demo参考:http://www.cfanz.cn/index.php?c=article&a=read&id=250334
源码参考:http://blog.csdn.net/aikongmeng/article/details/40457233#comments
两种计步器的区别和特点:http://blog.csdn.net/kieven2008/article/details/45165825
感谢这几位大神的无私分享!!
最近在做一个计步器项目,其中最主要的就是计步器算法,为了这个可谓绞尽脑汁啊,怎么算都不精确,今天无意中发现在Android高版本(API19+)中居然有系统提供的方法!
TYPE_STEP_DETECTOR 和TYPE_STEP_COUNTER
本人的手机是华为荣耀6,系统版本是Android5.1.1,在对比了华为自带的计步器和自己写的Demo后发现步数的变化是一模一样的!
所以以后大家在写计步器时用google给我们提供的方法就可以了,又方便又精确,不过低版本的还得自己写。。。。。
使用条件:android 4.4(API19)以上 并且需要相关传感器支持
使用方法:
sManager=(SensorManager)context.getSystemService(SENSOR_SERVICE);
// Step Counter
sManager.registerListener(new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
//这里可以直接得到步数,已测试与华为自带一模一样
float steps = event.values[0];
textViewStepCounter.setText((int) steps + "");
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy){
}
}, sManager.getDefaultSensor(