计步器的原理是通过手机的前后摆动模拟步伐节奏检测。我们本身在手机的传感器中就有计步器的传感器,所以这里我们直接上代码。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/tv_step"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="5dp"android:text="设备检测到您当前走了0步,总计数为0步"android:textColor="@color/black"android:textSize="17sp" />
</LinearLayout>

MainActivity.java

public class MainActivity extends BaseActivityimplements SensorEventListener {private TextView tv_step;private SensorManager mSensorMgr;// 声明一个传感管理器对象private int mStep;private int mStepCount;@Overrideprotected MvcBaseModel getModelImp() {return null;}@Overrideprotected int getContentLayoutId() {return R.layout.activity_main;}@Overrideprotected void initWidget() {tv_step = findViewById(R.id.tv_step);// 从系统服务中获取传感管理器对象mSensorMgr = (SensorManager) getSystemService(Context.SENSOR_SERVICE);}@Overrideprotected void onPause() {super.onPause();// 注销当前活动的传感监听器mSensorMgr.unregisterListener(this);}@Overrideprotected void onResume() {super.onResume();//注册步行检测mSensorMgr.registerListener(this,mSensorMgr.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR),SensorManager.SENSOR_DELAY_NORMAL);//注册步行计数mSensorMgr.registerListener(this,mSensorMgr.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR),SensorManager.SENSOR_DELAY_NORMAL);}@Overridepublic void onSensorChanged(SensorEvent event) {if (event.sensor.getType() == Sensor.TYPE_STEP_DETECTOR){//步行检测事件if (event.values[0] == 1.0f){mStep++;}}else if (event.sensor.getType() == Sensor.TYPE_STEP_COUNTER){//计步器事件mStepCount = (int) event.values[0];}String desc = String.format("设备检测到您当前走了%d步,总计数为%d步",mStep,mStepCount);tv_step.setText(desc);}//当传感器精度改变时回调该方法,一般无需处理public void onAccuracyChanged(Sensor sensor, int accuracy) {}
}

这样我们就实现了计步器的功能。

Android中计步器的实现相关推荐

  1. android中的计步问题及计步传感器分析

    今天打开博客,才发现居然有一年多没有写博客了... 最近由于公司要分析android上的计步问题,顺便把计步器在android上的实现跟踪了一下.结果发现悲催的是,android的api19上,是用的 ...

  2. Android中实现为TextView添加多个可点击的文本

    这篇文章主要介绍了Android中实现为TextView添加多个可点击的文本,可实现类似Android社交软件显示点赞用户并通过用户名称进入该用户主页的功能,是非常实用的技巧,需要的朋友可以参考下.具 ...

  3. android 弹出fragment,Android中ViewPager获取当前显示的Fragment

    前言 在项目中,有时会用到在ViewPager中显示同样类型的Fragment,同时这样的Fragment的个数是动态的,但是PagerAdapter没有给我们提供getCurrentFragment ...

  4. android 读取内部存储文件格式,Android中的数据储存之文件存储

    当我们在使用各种程序时,其实际上是在和各种数据打交道,当我们聊QQ,刷微博,看新闻,其实都是在和里面的数据交互 例如在聊天时发出的消息,以及在登录时输入的账号密码,其实都是瞬时数据,那什么是瞬时数据呢 ...

  5. android中一种不支持的lua操作

    今天写了一段lua代码,在win32中正常运行,在android中运行无效. 大概是这样的: ------file1.lua----- local t = {} t.str = "this ...

  6. Android中对Log日志文件的分析[转]

    一,Bug出现了, 需要"干掉"它 bug一听挺吓人的,但是只要你懂了,android里的bug是很好解决的,因为android里提供了LOG机制,具体的底层代码,以后在来分析,只 ...

  7. 在Android中进行单元测试遇到的问题

    问题1.Cannot connect to VM  socket closed 在使用JUnit进行测试的时候,遇到这个问题.网上的解释是:使用Eclipse对Java代码进行调试,无论是远程JVM还 ...

  8. android中设置控件获得焦点 (转)

    android中,要使控件获得焦点,需要先setFocus,再requestFocus. 以Button为例:                 btn.setFocusable(true);      ...

  9. Android中怎么使图片显示

    android中经常到利用图片,利用图片时我们都是把图片放在drawable-xxx目录下,因为这里就是存储图片的地方,xxx不用理他,就是关于分辨率而已. 楼主在学习android的时候一直尝试把图 ...

最新文章

  1. python编程从入门到精通 叶维忠 pdf-叶维忠《Python编程从入门到精通》PDF
  2. 【web安全】Web应用隔离防护之Web弱口令爆破
  3. 跟随我在oracle学习php(14)
  4. 集群服务器分布式iis_Nginx+IIS分布式部署和负载均衡
  5. 数据结构树4-二叉搜索树2
  6. matlab 解相位_光测力学栅线投影技术-相位求解方法
  7. Win10右键添加获取管理员权限
  8. 用正则验证用户输入文本框的内容是否是中文汉字
  9. Windows 8 页面应用测试(2)
  10. maven学习记录一——maven介绍及入门
  11. SQL:数据库更新语句操作实例
  12. Linux perf 1.1、perf_event内核框架
  13. 超融合和服务器关系_超融合服务器和超融合一体机有什么区别
  14. 【SSM】13-Spring中实现依赖注入的两种方式(xml和注解)
  15. 2020年最新前端面试题(包含ES6+)
  16. 2016鄂教版小学信息技术初识计算机软件,鄂教版(2016)五年级全册信息技术 25.揭秘计算机工作世界--初识计算机工作原理 教案...
  17. JAVA简单课程设计有文档和源代码
  18. C# .net Framework Windows窗体应用【01】
  19. 成功的艺术家临摹,伟大的艺术家剽窃
  20. 问题 A: C语言11.1——完成一个对候选人得票的统计程序。

热门文章

  1. JavaSE——Day1——计算机基础知识、Java语言基础、JRE与JDK
  2. 浙江理工大学 我的编程之路 零基础学C/C++ 200题 标程/题解
  3. soho新工作 新娘秘書
  4. 中国石油大学《物理化学》第三阶段在线作业
  5. KNN算法原理与自实现电影分类
  6. 如何快速开发一个自己的微信小程序
  7. abs int 宏定义_【C语言】15-预处理指令1-宏定义
  8. 网络打印机计算机服务,如何把局域网中的所有计算机及打印机设置共享?
  9. python 语音识别培训使用Python和Keras创建简单语音识别引擎
  10. 关于jd-gui启动报This program requires Java 1.8+的错误