【轉】 android 4.4 Step Counter Sensor計步器的使用


原文網址: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下載

先簡單實現下功能,明天在優化。

 

[java]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  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. }  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM