【转】 android 4.4 Step Counter Sensor计步器的使用
2015-11-20 12:49
495 查看
原文网址:/article/2599704.html
版权声明:本文为博主原创文章,未经博主允许不得转载。
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
package com.example.stepdemp;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.widget.Toast;
public class Pedometer implements SensorEventListener {
private SensorManager mSensorManager;
private Sensor mStepCount;
private Sensor mStepDetector;
private float mCount;//步行总数
private float mDetector;//步行探测器
private Context context;
private static final int sensorTypeD=Sensor.TYPE_STEP_DETECTOR;
private static final int sensorTypeC=Sensor.TYPE_STEP_COUNTER;
public Pedometer() {
}
public Pedometer(Context context) {
this.context = context;
mSensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
mStepCount = mSensorManager.getDefaultSensor(sensorTypeC);
mStepDetector = mSensorManager.getDefaultSensor(sensorTypeD);
}
public void register(){
register(mStepCount, SensorManager.SENSOR_DELAY_FASTEST);
register(mStepDetector, SensorManager.SENSOR_DELAY_FASTEST);
}
public void unRegister(){
mSensorManager.unregisterListener(this);
}
private void register(Sensor sensor,int rateUs) {
mSensorManager.registerListener(this, sensor, rateUs);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType()==sensorTypeC) {
setStepCount(event.values[0]);
}
if (event.sensor.getType()==sensorTypeD) {
if (event.values[0]==1.0) {
mDetector++;
}
}
}
public float getStepCount() {
return mCount;
}
private void setStepCount(float count) {
this.mCount = count;
}
public float getmDetector() {
return mDetector;
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
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
package com.example.stepdemp;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.widget.Toast;
public class Pedometer implements SensorEventListener {
private SensorManager mSensorManager;
private Sensor mStepCount;
private Sensor mStepDetector;
private float mCount;//步行总数
private float mDetector;//步行探测器
private Context context;
private static final int sensorTypeD=Sensor.TYPE_STEP_DETECTOR;
private static final int sensorTypeC=Sensor.TYPE_STEP_COUNTER;
public Pedometer() {
}
public Pedometer(Context context) {
this.context = context;
mSensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
mStepCount = mSensorManager.getDefaultSensor(sensorTypeC);
mStepDetector = mSensorManager.getDefaultSensor(sensorTypeD);
}
public void register(){
register(mStepCount, SensorManager.SENSOR_DELAY_FASTEST);
register(mStepDetector, SensorManager.SENSOR_DELAY_FASTEST);
}
public void unRegister(){
mSensorManager.unregisterListener(this);
}
private void register(Sensor sensor,int rateUs) {
mSensorManager.registerListener(this, sensor, rateUs);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType()==sensorTypeC) {
setStepCount(event.values[0]);
}
if (event.sensor.getType()==sensorTypeD) {
if (event.values[0]==1.0) {
mDetector++;
}
}
}
public float getStepCount() {
return mCount;
}
private void setStepCount(float count) {
this.mCount = count;
}
public float getmDetector() {
return mDetector;
}
}
相关文章推荐
- ButterKnife是一个专注于Android系统的View注入框架
- Android开发之BroadcastReceiver详解
- ButterKnife是一个专注于Android系统的View注入框架
- Android编程实现图标拖动效果的方法
- Android MultiAutoCompleteTextView多文本输入提示
- Android编程实现检测当前电源状态的方法
- Android resources.arsc资源文件防护原理分析
- Android resources.arsc资源文件防护原理分析
- Android之Intent的概念与应用
- Android编程实现擦除Bitmap中某一块的方法
- Android AutoCompleteTextView自动提示文本框
- Android Context
- android学习1——LinearLayout
- Android Spinnert的使用
- Android编程获取sdcard音乐文件的方法
- Android.mk语法规范 .
- Android.mk 编写规则简介
- android服务学习service之AIDL
- Android总结篇系列:Android Service
- Android编程获取sdcard卡信息的方法