Android记步(运动)应用
现如今随着人们对身体健康的追求,人们开始争先恐后的运动,而本文就是利用Android技术,编写一个运动记步数的应用(如有转载,请表明作者)。
一、使用Android内置传感器 TYPE_STEP_COUNTER 和 TYPE_STEP_DETECTOR
TYPE_STEP_COUNTER 记录开机以来的总步数,适合用于开发计步器。
TYPE_STEP_DETECTOR 检测到用户走了一步就向SensorEventListener传递一个浮点值1.0
1、添加相应权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BODY_SENSORS" />
2、进行注册绑定
mSensorManager.registerListener(mListener, mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR),
SensorManager.SENSOR_DELAY_NORMAL);
mSensorManager.registerListener(mListener, mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER),
SensorManager.SENSOR_DELAY_NORMAL);
3、监听传感器并获取步数
class MySensorEventListener implements SensorEventListener {
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_STEP_DETECTOR) {
if (event.values[0] == 1.0f) {
mStepDetector++;
}
} else if (event.sensor.getType() == Sensor.TYPE_STEP_COUNTER) {
mStepCounter = (int) event.values[0];
}
String desc = String.format("设备检测到您当前走了%d步,自开机以来总数为%d步", mStepDetector, mStepCounter);
walkSum.setText(""+mStepDetector);
mStepSum=mStepDetector*0.5/1000.0;
distance.setText(""+mStepSum);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
4、最后一定要解除绑定,不解除很耗电
mSensorManager.unregisterListener(mListener);
以上就是运用Android自带的传感器编写的运动记步应用,旨在大家参考。
如有问题欢迎纠错!!