• 【转】 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 plaincopy在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. }  
  • 相关阅读:
    10.30 afternoon
    10.29 afternoon
    10.29 morning

    10.27 noip模拟试题
    codevs 3052 多米诺 二分图匹配
    poj 1849 Two
    10.26 noip模拟试题
    10.25 noip模拟试题
    .NET Core EF 版本问题
  • 原文地址:https://www.cnblogs.com/wi100sh/p/4980387.html
Copyright © 2020-2023  润新知