Android 传感器应用开发
2014-01-08 11:27
399 查看
1、获取真机的Sensor管理器
2、为系统的传感器注册监听器
3、在onSensorChanged方法中得到传感器的值
4、取消监听器
private SensorManager mSensorManager; mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
2、为系统的传感器注册监听器
// 为系统的加速度传感器注册监听器 mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME); // 为系统的方向传感器注册监听器 mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_GAME); // 为系统的磁场传感器注册监听器 mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD), SensorManager.SENSOR_DELAY_GAME); // 为系统的温度传感器注册监听器 mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_TEMPERATURE), SensorManager.SENSOR_DELAY_GAME); // 为系统的光传感器注册监听器 mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT), SensorManager.SENSOR_DELAY_GAME); // 为系统的压力传感器注册监听器 mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE), SensorManager.SENSOR_DELAY_GAME);
3、在onSensorChanged方法中得到传感器的值
public void onSensorChanged(SensorEvent event) { float[] values = event.values; // // 真机上获取触发event的传感器类型 int sensorType = event.sensor.getType(); // 模拟器上获取触发event的传感器类型 // int sensorType = event.type; StringBuilder sb = null; // 判断是哪个传感器发生改变 switch (sensorType) { // 加速度传感器 case Sensor.TYPE_ACCELEROMETER: sb = new StringBuilder(); sb.append("X方向上的加速度:"); sb.append(values[0]); sb.append("\nY方向上的加速度:"); sb.append(values[1]); sb.append("\nZ方向上的加速度:"); sb.append(values[2]); accelerometer.setText(sb.toString()); // 方向传感器 case Sensor.TYPE_ORIENTATION: sb = new StringBuilder(); sb.append("绕Z轴转过的角度:"); sb.append(values[0]); sb.append("\n绕X轴转过的角度:"); sb.append(values[1]); sb.append("\n绕Y轴转过的角度:"); sb.append(values[2]); etOrientation.setText(sb.toString()); break; // 磁场传感器 case Sensor.TYPE_MAGNETIC_FIELD: sb = new StringBuilder(); sb.append("X方向上的角度:"); sb.append(values[0]); sb.append("\nY方向上的角度:"); sb.append(values[1]); sb.append("\nZ方向上的角度:"); sb.append(values[2]); etMagnetic.setText(sb.toString()); break; // 温度传感器 case Sensor.TYPE_TEMPERATURE: sb = new StringBuilder(); sb.append("当前温度为:"); sb.append(values[0]); etTemerature.setText(sb.toString()); break; // 光传感器 case Sensor.TYPE_LIGHT: sb = new StringBuilder(); sb.append("当前光的强度为:"); sb.append(values[0]); etLight.setText(sb.toString()); break; // 压力传感器 case Sensor.TYPE_PRESSURE: sb = new StringBuilder(); sb.append("当前压力为:"); sb.append(values[0]); etPressure.setText(sb.toString()); break; } }
4、取消监听器
mSensorManager.unregisterListener(this);
相关文章推荐
- [Android实例] Sensor传感器源码的阅读与应用开发简单实例
- Android应用开发提高篇(3)-----传感器(Sensor)编程
- Android应用开发提高篇(3)-----传感器(Sensor)编程(转)
- [置顶] 利用Android系统的传感器开发水平仪应用的全过程介绍
- Android平台下传感器应用的开发
- 人机交互实验:Android开发之人物移动、地图滑动、传感器、触屏的应用
- Android开发传感器应用---获取方向传感器
- android开发笔记之高级主题—传感器的简单应用
- Android开发10:传感器器及地图相关应用
- Android应用开发提高篇(3)-----传感器(Sensor)编程
- Android传感器应用开发
- android中度量坐标 传感器应用的开发
- Android开发传感器应用---获取加速度
- Android平台下传感器应用的开发--基础知识
- Android开发 百度地图开发(定位、传感器应用)
- Android开发10:传感器器及地图相关应用
- Android应用开发学习之Selector
- Android开发:判断应用第一次启动(精简代码版)
- Android开发之退出应用
- Android应用开发基础篇(10)-----Menu(菜单)