博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】 android 4.4 Step Counter Sensor计步器的使用
阅读量:6331 次
发布时间:2019-06-22

本文共 1805 字,大约阅读时间需要 6 分钟。

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

Android 官方参考

 

下载

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

 

[java] 
 
  1. package com.example.stepdemp;  
  2.   
  3. import android.content.Context;  
  4. import android.hardware.Sensor;  
  5. import android.hardware.SensorEvent;  
  6. import android.hardware.SensorEventListener;  
  7. import android.hardware.SensorManager;  
  8. import android.widget.Toast;  
  9.   
  10. public class Pedometer implements SensorEventListener {  
  11.     private SensorManager mSensorManager;  
  12.     private Sensor mStepCount;  
  13.     private Sensor mStepDetector;  
  14.     private float mCount;//步行总数   
  15.     private float mDetector;//步行探测器   
  16.     private Context context;  
  17.     private static final int sensorTypeD=Sensor.TYPE_STEP_DETECTOR;  
  18.     private static final int sensorTypeC=Sensor.TYPE_STEP_COUNTER;  
  19.   
  20.     public Pedometer() {  
  21.   
  22.     }  
  23.     public Pedometer(Context context) {  
  24.         this.context = context;   
  25.         mSensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);  
  26.         mStepCount = mSensorManager.getDefaultSensor(sensorTypeC);  
  27.         mStepDetector = mSensorManager.getDefaultSensor(sensorTypeD);  
  28.     }  
  29.   
  30.     public void register(){   
  31.   
  32.         register(mStepCount, SensorManager.SENSOR_DELAY_FASTEST);  
  33.         register(mStepDetector, SensorManager.SENSOR_DELAY_FASTEST);  
  34.     }  
  35.   
  36.     public void unRegister(){  
  37.         mSensorManager.unregisterListener(this);  
  38.     }  
  39.   
  40.     private void register(Sensor sensor,int rateUs) {  
  41.         mSensorManager.registerListener(this, sensor, rateUs);   
  42.     }  
  43.   
  44.     @Override  
  45.     public void onAccuracyChanged(Sensor sensor, int accuracy) {   
  46.     }  
  47.   
  48.     @Override  
  49.     public void onSensorChanged(SensorEvent event) {           
  50.           
  51.         if (event.sensor.getType()==sensorTypeC) {   
  52.             setStepCount(event.values[0]);    
  53.         }  
  54.         if (event.sensor.getType()==sensorTypeD) {   
  55.             if (event.values[0]==1.0) {  
  56.                  mDetector++;  
  57.             }   
  58.         }  
  59.     }  
  60.   
  61.     public float getStepCount() {  
  62.         return mCount;  
  63.     }  
  64.   
  65.     private void setStepCount(float count) {  
  66.         this.mCount = count;  
  67.     }  
  68.       
  69.     public float getmDetector() {  
  70.         return mDetector;  
  71.     }  
  72.   
  73. }  
你可能感兴趣的文章
html img Src base64 图片显示
查看>>
[Spring学习笔记 7 ] Spring中的数据库支持 RowMapper,JdbcDaoSupport 和 事务处理Transaction...
查看>>
FFMPEG中关于ts流的时长估计的实现(转)
查看>>
Java第三次作业
查看>>
【HDOJ 3652】B-number
查看>>
android代码混淆笔记
查看>>
Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) C. String Reconstruction 并查集
查看>>
BMP文件的读取与显示
查看>>
Flash文字效果
查看>>
各种排序算法总结篇(高速/堆/希尔/归并)
查看>>
使用c#訪问Access数据库时,提示找不到可安装的 ISAM
查看>>
Highcharts X轴纵向显示
查看>>
windows 注册表讲解
查看>>
【算法】论平衡二叉树(AVL)的正确种植方法
查看>>
基于DDD的现代ASP.NET开发框架--ABP系列之1、ABP总体介绍
查看>>
【原】东拼西凑PBR(1):PBR基础
查看>>
react 从零开始搭建开发环境
查看>>
scala recursive value x$5 needs type
查看>>
ps -ef |grep 输出的具体含义
查看>>
markdown编辑
查看>>