原文网址:http://blog.csdn.net/aikongmeng/article/details/40457233

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android 官方参考

https://source.android.com/devices/sensors/composite_sensors.html

https://developer.android.com/guide/topics/sensors/sensors_motion.html

Developer - Location and Sensors APIs

Developer - Sensors Overview

Sensors SDK API reference

Android Hardware Abstraction Layer - sensors.h

SensorManager

DEmo.zip下载

先简单实现下功能,明天在优化。

  1. package com.example.stepdemp;
  2. import android.content.Context;
  3. import android.hardware.Sensor;
  4. import android.hardware.SensorEvent;
  5. import android.hardware.SensorEventListener;
  6. import android.hardware.SensorManager;
  7. import android.widget.Toast;
  8. public class Pedometer implements SensorEventListener {
  9. private SensorManager mSensorManager;
  10. private Sensor mStepCount;
  11. private Sensor mStepDetector;
  12. private float mCount;//步行总数
  13. private float mDetector;//步行探测器
  14. private Context context;
  15. private static final int sensorTypeD=Sensor.TYPE_STEP_DETECTOR;
  16. private static final int sensorTypeC=Sensor.TYPE_STEP_COUNTER;
  17. public Pedometer() {
  18. }
  19. public Pedometer(Context context) {
  20. this.context = context;
  21. mSensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
  22. mStepCount = mSensorManager.getDefaultSensor(sensorTypeC);
  23. mStepDetector = mSensorManager.getDefaultSensor(sensorTypeD);
  24. }
  25. public void register(){
  26. register(mStepCount, SensorManager.SENSOR_DELAY_FASTEST);
  27. register(mStepDetector, SensorManager.SENSOR_DELAY_FASTEST);
  28. }
  29. public void unRegister(){
  30. mSensorManager.unregisterListener(this);
  31. }
  32. private void register(Sensor sensor,int rateUs) {
  33. mSensorManager.registerListener(this, sensor, rateUs);
  34. }
  35. @Override
  36. public void onAccuracyChanged(Sensor sensor, int accuracy) {
  37. }
  38. @Override
  39. public void onSensorChanged(SensorEvent event) {
  40. if (event.sensor.getType()==sensorTypeC) {
  41. setStepCount(event.values[0]);
  42. }
  43. if (event.sensor.getType()==sensorTypeD) {
  44. if (event.values[0]==1.0) {
  45. mDetector++;
  46. }
  47. }
  48. }
  49. public float getStepCount() {
  50. return mCount;
  51. }
  52. private void setStepCount(float count) {
  53. this.mCount = count;
  54. }
  55. public float getmDetector() {
  56. return mDetector;
  57. }
  58. }

【转】 android 4.4 Step Counter Sensor计步器的使用的更多相关文章

  1. Step Detector and Step Counter Sensors on Android

    Step Detector and Step Counter Sensors on Android 时间 2014-03-31 11:56:00 Tech Droid 原文  http://techd ...

  2. Android设备中实现Orientation Sensor(图)兼谈陀螺仪

    设备中的三自由度Orientation Sensor就是一个可以识别设备相对于地面,绕x.y.z轴转动角度的感应器(自己的理解,不够严谨).智能手机,平板电脑有了它,可以实现很多好玩的应用,比如说指南 ...

  3. 获取Android设备的方向,Sensor和SensorManager实现手机旋转角度

    http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1009/425.html 带有g-sensor的Android设备上可通过API ...

  4. Android Sensor.TYPE_STEP_COUNTER 计步器传感器 步数统计

    注意:使用 计步器传感器 Sensor.TYPE_STEP_COUNTER 获取步数前需要手机支持该传感器 1.学习资料 1.1 SENSOR.TYPE_STEP_COUNTER 地址:开发者文档 翻 ...

  5. Android Sensor Test

    魅蓝note可用 [{Sensor name="MPL Gyroscope", vendor="Invensense", version=1, type=4, ...

  6. android 6.0 高通平台sensor 工作机制及流程(原创)

    最近工作上有碰到sensor的相关问题,正好分析下其流程作个笔记. 这个笔记分三个部分: sensor硬件和驱动的工作机制 sensor 上层app如何使用 从驱动到上层app这中间的流程是如何 Se ...

  7. 我的Android进阶之旅------>Android利用Sensor(传感器)实现水平仪功能的小例

    这里介绍的水平仪,指的是比较传统的气泡水平仪,在一个透明圆盘内充满液体,液体中留有一个气泡,当一端翘起时,该气泡就会浮向翘起的一端.    利用方向传感器返回的第一个参数,实现了一个指南针小应用. 我 ...

  8. Android 4.4 KitKat 新特性

    New in Android 4.4 KitKat 本文是一个概览,关于KitKat,也即Android4.4的新东西,先是功能型的,之后是设计上的. 很多特性本文并没有提到,很多提到的特性也只是简短 ...

  9. android基础---->传感器的使用

    现在每部Android 手机里面都会内置有许多的传感器,它们能够监测到各种发生在手机上的物理事件,而我们只要灵活运用这些事件就可以编写出很多好玩的应用程序.今天我们开始简单的传感器使用的学习. 目录导 ...

随机推荐

  1. 缓冲运动-1-[解决1].html

    <!DOCTYPE html> <html> <head lang="en">     <meta charset="UTF-8 ...

  2. Reso | The Linux Command Line 的中文版

    http://book.haoduoshipin.com/tlcl/book/zh/ 本书是 The Linux Command Line 的中文版, 为大家提供了多种不同的阅读方式. 中英文双语版- ...

  3. C++ XML 解释库

    rapidxml  http://rapidxml.sourceforge.net/index.htm

  4. Effective C++ 总结(一)

    一.让自己习惯C++    条款01:视C++为一个语言联邦       为了更好的理解C++,我们将C++分解为四个主要次语言: C.说到底C++仍是以C为基础.区块,语句,预处理器,内置数据类型, ...

  5. Upgrade to Python 2.7.9 on CentOS5.5

    1. Install python2.7 #cd /tmp #wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz --no-ch ...

  6. ASP.NET-FineUI开发实践-13(一)

    开原版好像是没有gird树,有一个扩展列下的模拟树列,就是不能展开,专业版有,开原版我弄了弄,思路是有,就是不是很好实现.这篇博客直接写出了(一)说明一个肯定是写不完的. FineUI重在封装,改这个 ...

  7. JavaScript设计模式之观察者模式(学习笔记)

    设计模式(Design Pattern)对于软件开发来说其重要性不言而喻,代码可复用.可维护.可扩展一直都是软件工程中的追求!对于我一个学javascript的人来说,理解设计模式似乎有些困难,对仅切 ...

  8. 低字节序和高字节序相互转换(Little Endian/Big Endian)

    这个例子展示了如何转换整形数字的字节顺序,该方法可以用来在little-endian和big-endian之间转换. 说明:Windos(x86,x64)和Linux(x86,x64)都是little ...

  9. 解决java访问.netWebService的常见问题

    到公司没多久,写了一个java调用.net写的webService结果期间用各种方法测试都没有完成,总是抛出异常,最后直接使用SOAP消息去进行调用才成功了,具体代码如下,仅供参考:import ja ...

  10. Qt之QCustomPlot绘图(一)配置和第一个例子

    最近一个用Qt开发的项目需要绘制坐标曲线,我在老师的指点下使用了QCustomPlot这个插件,使用方法简单,功能还算不错. 可是在网上找了很多资料和博文都只是将官方提供的例子演示一遍,没有系统全面的 ...