当前位置:首页 > 开发 > 移动开发 > 正文

传感器

发表于: 2015-03-21   作者:百合不是茶   来源:转载   浏览:
摘要: android传感器的作用主要就是来获取数据,根据得到的数据来触发某种事件   下面就以重力传感器为例;   1,在onCreate中获得传感器服务   private SensorManager sm;// 获得系统的服务 private Sensor sensor;// 创建传感器实例 @Override protected void

android传感器的作用主要就是来获取数据,根据得到的数据来触发某种事件

 

下面就以重力传感器为例;

 

1,在onCreate中获得传感器服务

 

private SensorManager sm;// 获得系统的服务
	private Sensor sensor;// 创建传感器实例

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		// 获得传感器,//通过服务得到传感器管理对象
		sm = (SensorManager) getSystemService(SENSOR_SERVICE);
		// 获得默认的传感器
		sensor = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
		// TYPE_ACCELEROMETER 加速度传感器(重力传感器)类型。
		// TYPE_ALL 描述所有类型的传感器。
		// TYPE_GYROSCOPE 陀螺仪传感器类型
		// TYPE_LIGHT 光传感器类型
		// TYPE_MAGNETIC_FIELD 恒定磁场传感器类型。
		// TYPE_ORIENTATION 方向传感器类型。
		// TYPE_PRESSURE 描述一个恒定的压力传感器类型
		// TYPE_PROXIMITY 距离(临近性)传感器
		// TYPE_TEMPERATURE 温度传感器类型描述

}

 

2,当界面显示的时候注册传感器

	@Override
	protected void onResume() {
		super.onResume();
		// 当界面显示时,注册注册传感器
		// 第一个参数是传感器监听器,第二个是需要监听的传感实例
		// 最后一个参数是监听的传感器速率类型: 一共一下四种形式
		// SENSOR_DELAY_NORMAL 正常
		// SENSOR_DELAY_UI 适合界面
		// SENSOR_DELAY_GAME 适合游戏
		// SENSOR_DELAY_FASTEST 最快
		sm.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL);

	}

 

3,当界面消失的时候关闭传感器

@Override
	protected void onStop() {
		// TODO Auto-generated method stub
		super.onStop();
		// 关闭传感器
		sm.unregisterListener(this);
	}

 

 

4,监听传感器的数据改变  implements SensorEventListener{}

 

	@Override
	// 传感器获取值发生改变时获取值
	public void onSensorChanged(SensorEvent event) {
		float x, y;
		// TODO Auto-generated method stub
		// 获取手机的坐标值
		x = event.values[0];// x轴
		y = event.values[1];// y轴
		//z = event.values[2];// z轴
		// Log.i("event", "onSensorChanged:" + event + "<><>x :<> " + x
		// + "<><>y:<>" + y);
		// 判断传感器的方向
		if (x < -2 && x > -10) {
			System.out.println("向上");
		} else if (x > 2 && x < 10) {
			System.out.println("向下");
		} else if (y < -2 && y > -10) {
			System.out.println("向左");
		} else if (y > 2 && y < 10) {
			System.out.println("向右");
		}

	}

	@Override
	// 传感器的精度发生改变时响应此函数
	public void onAccuracyChanged(Sensor sensor, int accuracy) {
		// TODO Auto-generated method stub
		// Log.i("event", "onAccuracyChanged:" + sensor + "<><><><>" +
		// accuracy);
	}

 

 

其他传感器的使用方式和上述的相似 ,只是获取的传感器不同,监听器中的event.values[0];代表的值不同

 

 

 

 

 

传感器

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
本讲内容:Android传感器编程入门,分别包括加速度传感器(accelerometer),陀螺仪(gyroscope),环
介绍 像我一样,喜欢养花的人,有没有想过要实现自动浇花的功能啊。下面介绍的就是非常重要的一个配
通过获取系统服务得到SensorManager 注册一个监听器SensorEventListener,数据处理过程就在监听器里
传感器 1.SensorManager 1.sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 2.
前言   Android提供了对设备传感器的支持,只要Android设备的硬件提供了这些传感器,Android应用
Android中的传感器主要有以下几种 传感器 Java中的名称 本地接口名称 数值 加速度 TYPE_ACCELEROMET
方向传感器是加速度传感器(GSensor)的廉价替代品,能完成GSensor的一些功能。下面根据网上资料介
Android 是一个面向应用程序开发的富平台,它拥有许多具有吸引力的用户界面元素和数据管理功能。And
传感器系统:SensorManager.java:实现传感器系统核心的管理类SensorManagerSensor.java:单一传感
这节课我们来学习安卓中的光照传感器,已经会的请绕过此篇。 安卓系统有个自动调整屏幕亮度的功能。
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号