# Android精准计步开发
亲测在小米.魅族.华为上可用
<div align="center">
<img src="screenshots/主页.jpg" width="30%" height="30%"/>
<img src="screenshots/锻炼计划.jpg" width="30%" height="30%"/>
<img src="screenshots/历史记录.jpg" width="30%" height="30%"/>
</div>
#### 下载体验
![](screenshots/dylanstep.png)
# 万分感谢项目中使用两位大神的算法
* [xbase](http://www.jianshu.com/p/5d57f7fd84fa)
* [finnfu](https://github.com/finnfu/stepcount/tree/master/demo%E4%BB%A5%E5%8F%8A%E7%AE%97%E6%B3%95%E6%96%87%E6%A1%A3)
# 1.需要在AndroidManifest.xml中添加权限
```xml
<!--计歩需要的权限-->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-feature android:name="android.hardware.sensor.accelerometer" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-feature
android:name="android.hardware.sensor.stepcounter"
android:required="true" />
<uses-feature
android:name="android.hardware.sensor.stepdetector"
android:required="true" />
```
# 2.检测手机是否支持计歩
```java
/**
* 判断该设备是否支持计歩
*
* @param context
* @return
*/
@TargetApi(Build.VERSION_CODES.KITKAT)
public static boolean isSupportStepCountSensor(Context context) {
// 获取传感器管理器的实例
SensorManager sensorManager = (SensorManager) context
.getSystemService(context.SENSOR_SERVICE);
Sensor countSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
Sensor detectorSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR);
return countSensor != null || detectorSensor != null;
}
```
# 3.功能使用
```java
private boolean isBind = false;
private Messenger mGetReplyMessenger = new Messenger(new Handler(this));
private Messenger messenger;
/**
* 开启计步服务
*/
private void setupService() {
Intent intent = new Intent(this, StepService.class);
isBind = bindService(intent, conn, Context.BIND_AUTO_CREATE);
startService(intent);
}
/**
* 从service服务中拿到步数
*
* @param msg
* @return
*/
@Override
public boolean handleMessage(Message msg) {
switch (msg.what) {
case Constant.MSG_FROM_SERVER:
cc.setCurrentCount(10000, msg.getData().getInt("step"));
break;
}
return false;
}
/**
* 用于查询应用服务(application Service)的状态的一种interface,
* 更详细的信息可以参考Service 和 context.bindService()中的描述,
* 和许多来自系统的回调方式一样,ServiceConnection的方法都是进程的主线程中调用的。
*/
ServiceConnection conn = new ServiceConnection() {
/**
* 在建立起于Service的连接时会调用该方法,目前Android是通过IBind机制实现与服务的连接。
* @param name 实际所连接到的Service组件名称
* @param service 服务的通信信道的IBind,可以通过Service访问对应服务
*/
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
try {
messenger = new Messenger(service);
Message msg = Message.obtain(null, Constant.MSG_FROM_CLIENT);
msg.replyTo = mGetReplyMessenger;
messenger.send(msg);
} catch (RemoteException e) {
e.printStackTrace();
}
}
/**
* 当与Service之间的连接丢失的时候会调用该方法,
* 这种情况经常发生在Service所在的进程崩溃或者被Kill的时候调用,
* 此方法不会移除与Service的连接,当服务重新启动的时候仍然会调用 onServiceConnected()。
* @param name 丢失连接的组件名称
*/
@Override
public void onServiceDisconnected(ComponentName name) {
}
};
```
没有合适的资源?快使用搜索试试~ 我知道了~
Android精准计步器
共79个文件
java:22个
xml:19个
png:16个
需积分: 9 9 下载量 21 浏览量
2017-12-22
15:05:57
上传
评论
收藏 3.01MB ZIP 举报
温馨提示
Android精准计步器 ,打开APP可以测出你行走的步数,并添加了加速度传感器记步算法,支持所有设备记步。
资源推荐
资源详情
资源评论
收起资源包目录
DylanStepCount-master.zip (79个子文件)
DylanStepCount-master
gradlew 5KB
settings.gradle 15B
app-debug.apk 1.57MB
.idea
runConfigurations.xml 564B
misc.xml 2KB
compiler.xml 686B
gradle.xml 626B
encodings.xml 159B
modules.xml 365B
copyright
profiles_settings.xml 74B
vcs.xml 180B
gradle
wrapper
gradle-wrapper.properties 230B
gradle-wrapper.jar 52KB
LICENSE.md 935B
README.md 4KB
screenshots
dylanstep.png 4KB
所有截图.txt 0B
stepAll.gif 724KB
历史记录.jpg 88KB
锻炼计划.jpg 175KB
step.gif 120KB
主页.jpg 112KB
gradlew.bat 2KB
gradle.properties 730B
.gitignore 118B
app
src
main
AndroidManifest.xml 3KB
res
mipmap-hdpi
ic_launcher.png 3KB
mipmap-xxxhdpi
ic_launcher.png 10KB
mipmap-xhdpi
ic_launcher.png 5KB
mipmap-mdpi
ic_launcher.png 2KB
drawable
cb_plan_selector.xml 291B
layout
item.xml 905B
ac_exercise_plan.xml 7KB
ac_history.xml 2KB
activity_main.xml 3KB
values-w820dp
dimens.xml 358B
values
colors.xml 500B
strings.xml 74B
styles.xml 363B
dimens.xml 211B
mipmap-xxhdpi
btn_bg_short.png 3KB
ic_launcher.png 8KB
btn_submit_bg.png 4KB
bg_create_group.png 263KB
arrow_back_white.png 1KB
home_question_mark.png 3KB
cb_normal_plan.png 5KB
settle_accounts_bt_bg.png 1KB
home_statistical.png 3KB
cb_selected_plan.png 6KB
sport.jpeg 47KB
logo.png 9KB
java
cn
bluemobi
dylan
step
view
StepArcView.java 10KB
activity
MainActivity.java 5KB
SetPlanActivity.java 5KB
HistoryActivity.java 3KB
pedometer
StepDetector.java 4KB
StepListener.java 101B
StepsDetectService.java 2KB
adapter
CommonAdapter.java 1KB
CommonViewHolder.java 1018B
step
service
StepService.java 21KB
utils
StepCountModeDispatcher.java 1KB
DbUtils.java 3KB
SharedPreferencesUtils.java 3KB
CountDownTimer.java 3KB
config
Constant.java 259B
accelerometer
StepValuePassListener.java 168B
StepCount.java 2KB
StepDetector.java 6KB
StepCountListener.java 153B
bean
StepData.java 1KB
UpdateUiCallBack.java 248B
app
MyApplication.java 241B
libs
lite-orm-1.7.0.jar 120KB
.gitignore 7B
build.gradle 909B
proguard-rules.pro 653B
build.gradle 498B
共 79 条
- 1
资源评论
修行者对666
- 粉丝: 1080
- 资源: 78
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功