Android超精准计步器开发-Dylan计步
转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/52868803
本文出自【DylanAndroid的博客】
Android超精准计步器开发
亲测在小米.魅族.华为上可用,该app采用后台service计歩服务,所以只要app不被手机杀死在后台也是可以正常计歩的。上图:
![]()
万分感谢项目中使用两位大神的算法
xbase
finnfu
1.需要在AndroidManifest.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.检测手机是否支持计歩
/*** 判断该设备是否支持计歩** @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.功能使用
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*/@Overridepublic 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访问对应服务*/@Overridepublic 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 丢失连接的组件名称*/@Overridepublic void onServiceDisconnected(ComponentName name) {}};
GitHub地址
Android超精准计步器开发-Dylan计步相关推荐
- android精准计步器,Android 超精准计步器开发 - Dylan 计步
Android超精准计步器开发 亲测在小米.魅族.华为上可用,该app采用后台service计歩服务,所以只要app不被手机杀死在后台也是可以正常计歩的.上图: 1.需要在AndroidManifes ...
- 【Android自定义View实战】之仿QQ运动步数圆弧及动画,Dylan计步中的控件StepArcView
转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/52936609 [DylanAndroid的csdn博客] 在之前的Androi ...
- android 计步器 开发,Android计步器开发
本文只赘述Android计步器开发里计步的原理. 在Android4.4版本之后,新增了STEP_COUNTER和STEP_DECTECTOR STEP_COUNTER表示自从开机以来,你走的步数累计 ...
- Android简单的计步器应用实现
相信大家对微信,小米手环这两个东西都不陌生,而且这两个东西都提供了一个计数器的功能,统计你每天行走的步数,可能有的人每天最开心的事就是看到自己又霸占了微信步数排行榜第一,离瘦瘦瘦真的是越来越近了. 今 ...
- Qcom_Sensor(一)--- 之 Android简单的计步器应用实现
Qcom_Sensor(一)--- 之 Android简单的计步器应用实现 一.硬件支持 二.Manifest清单文件 三.UI界面 四.具体业务逻辑 相信大家对微信,小米手环这两个东西都不陌生,而且 ...
- Android | 教你如何开发一键银行卡绑定功能
目录 前言 银行卡识别的应用场景 如何使用华为银行卡识别服务 集成银行卡识别服务关键流程 开发实战 1 开发准备 1.1 在项目级gradle里添加华为maven仓 1.2 在应用级的build.gr ...
- 《Android FFmpeg 播放器开发梳理》第一章 播放器初始化与解复用流程
<Android FFmpeg 播放器开发梳理>: 第零章 基础公共类的封装 播放器初始化与解复用流程 这一章,我们来讲解播放器解复用(从文件中读取数据包)的流程.在讲解播放器的读数据包流 ...
- android音视频播放器开发百度云,Android 播放端 SDK
1 概述 PLDroidPlayer 是一个适用于 Android 平台的音视频播放器 SDK,可高度定制化和二次开发,为 Android 开发者提供了简单.快捷的接口,帮助开发者在 Android ...
- CIO访谈实录丨渤海人寿携手SmartX超融合大幅提升开发测试效率
客户访谈:金融/保险业 新金融科技时代,数据的可靠性及平台计算性能是核心要义:新业务上线拓展的迅捷性,更是激烈竞争中重要的取胜之匙.在创新技术驱动业务发展理念的指引下,保险行业新兴寿险企业渤海人寿选择 ...
- java实训简单计步器实训报告_基于android的手机计步器设计与实现毕业论文
基于android的手机计步器设计与实现毕业 论文 目录 1 绪论 (1) 1.1 研究背景 (1) 1.2 Android平台的发展状况 (1) 1.3 研究的目的和意义 (1) 2 相关技术简介 ...
最新文章
- Android中 TextView的使用
- 用Vue框架和后台请求的时候传递的参数的方式
- LeetCode Maximal Square(最大子矩阵)
- owncloud 配置mysql_傻瓜式搭建私人网络硬盘——owncloud安装指南
- Cookie和Session区别
- 人脸识别的python实现代码_手把手教你用1行代码实现人脸识别 --Python Face_recognition...
- Leetcode之二叉树(前200道)
- MySQL到MsSQL的迁移工具——SSMA
- [译] 绘制路径:Android 中矢量图渲染
- Tensorflow Data Adapter Error: ValueError: Failed to find data adapter that can handle input
- iOS开发之控制器的创建
- Redis-01-NoSQL简介及Redis数据库安装
- Gantt甘特图如何实现数据加载
- 考研_数学二_中值定理_证明题_辅助函数的设法
- A Beautiful Song : Burning
- PPT柱形统计图制作详情——小白秒变大神
- 解决VMware下安装Ubuntu 16.04 不支持1920X1080分辨率的问题
- 万字面试分享贴!从十二个角度解析面试全流程!附互联网公司Offer难度系数分析...
- 如何查看oracle的版本信息(两种方法)
- IOS中删除文件和文件夹