传感器入门

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

传感器入门1.传感器分类2.如何使用传感器3.获取手机中所有传感器4.传感器事件概念5.为应用注册传感器6.获取传感器的值和精度什么是传感器能感受某种类型的变化并按照约定的规律转换成可用输出信号的装置,叫做传感器。目前上市的Android手机,基本上都安装了至少3个传感器,分别是陀螺仪,方位传感器和加速度传感器。Android的API支持多种传感器(可选支持,大部分手机只支持其中一部分)Android对于传感器的操作,是利用android.hardware包中的部分类和接口来实现的。下一节我们将对其逐一进行讲解。3传感器的种类1.动作传感器加速度传感器,重力传感器和陀螺仪等2.位置传感器方向传感器和磁力传感器3.环境传感器温度,压力,亮度Sensor类定义了以下几种类型的传感器(需要硬件支持)种类说明TYPE_ACCELEROMETER加速度传感器TYPE_GYROSCOPE陀螺仪传感器TYPE_LIGHT光传感器TYPE_MAGNETIC_FIELD磁场传感器TYPE_ORIENTATION方位传感器TYPE_PRESSURE压力传感器TYPE_PROXIMITY距离传感器TYPE_TEMPERATURE温度传感器TYPE_ALL全部的传感器5获取传感器的信息方法说明getMaximumRange()传感器的最大值(按传感器的单位计算)getName()传感器的名字getPower()传感器使用时的电流强度(毫安)getType()传感器的类型getVentor()传感器供应商的信息getVersion()传感器的版本号6SensorManager类摘要Android中只能通过SensorManager类来访问传感器设备只能使用下面的方法获得SensorManager的实例SensorManager中定义了一组采样率的常量,使用时请酌情选择,以免应用太耗电(SensorManager)Context.getSystemService(Context.SENSOR_SERVICE);种类说明SENSOR_DELAY_FASTEST以最快的速度获得传感器的相关数据SENSOR_DELAY_GAME此速率适合游戏中使用SENSOR_DELAY_UI此速率适合用户界面中使用SENSOR_DELAY_NORMAL此速率适合在屏幕横竖变换中使用7SensorManager类的关键方法:方法说明getDefaultSensor(inttype)根据type编号获得相应的SensorregisterListener(SensorEventListenerlistener,Sensorsensor,intrate)将一个监听器注册到传感器设备(rate代表之前提到的采样率)unregisterListener(SensorEventListenerlistener)注销已经注册的监听器getSensorList(inttype)获得可用的Sensor的列表8SensorEventListener接口摘要SensorEventListener是用于监听传感器的通用接口。该接口有两个方法:onAccuracyChanged(Sensorsensor,intaccuracy)当传感器的精度(采样率)发生变化时被调用。onSensorChanged(SensorEventevent)当传感器的值发生变化时被调用。使用传感器时,需要先实现SensorEventListener接口,然后使用SensorManager的registerListener方法注册该接口,这样,当对应的传感器精度变化或者值变化的时候,都会调用该接口对应的方法。9SensorEvent类摘要SensorEvent代表传感器事件,它持有传感器所传递的关键信息传感器会向已注册的SensorEventListener发送SensorEvent对象。SensorEvent中包含了传感器发送的关键信息values。不同的传感器所发送的SensorEvent对象,其values的含义不同。需要根据传感器的定义,自行处理。下面是SensorEvent类的成员:publicintaccuracy传感器的精度(采样率)publicSensorsensor发送此SensorEvent的传感器的引用publiclongtimestamp传感器发生此事件的时间戳publicfinalfloat[]values传感器的值(关键所在)10SensorEvent.values详解values,传感器的值,是浮点型数组根据传感器的不同,values的长度和含义都不相同。Sensor.TYPE_ORIENTATION方位传感器,它的values有三个值:values[0],方位角,手机绕z轴旋转0=北90=东180=南270=西values[1],倾斜角,手机绕x轴旋转如图屏幕朝上时的值是0,旋转到屏幕朝下时的值是180values[2],旋转角,手机绕y轴旋转取值范围是-90≤values[2]≤90,如图屏幕朝上时的值是0手机左边沿竖直向上时的值是-90,游边沿竖直向上时的值是9011Sensor.TYPE_ACCELEROMETER加速度传感器,它的values有三个值(单位是m/s^2):values[0],表示设备的加速度值减去重力加速度在x轴上的分量values[1],表示设备的加速度值减去重力加速度在y轴上的分量values[2],表示设备的加速度值减去重力加速度在z轴上的分量例如:当设备平放在桌面上时,将设备从左向右推,x轴方向的值是正值。当设备平放在桌面时,它的加速度为+9.81,也就是设备的加速度(0m/s^2)减去重力加速度(-9.81m/s^2)。当设备平放在桌面上时,然后以Am/s^2的加速度抛向空中时,它的加速度为A+9.81,也就是设备的加速度(+Am/s^2)减去重力加速度(-9.81m/s^2)。12Sensor.TYPE_MAGNETIC_FIELD磁场传感器,它的values有三个值(单位是micro-Tesla,缩写是uT):values[0],表示设备在x轴上的磁场分量values[1],表示设备在y轴上的磁场分量values[2],表示设备在z轴上的磁场分量Sensor.TYPE_LIGHT光传感器,它的values只有一个值(单位是Lux,照明度):values[0],表示设备周围的照明度Sensor.TYPE_PROXIMITY距离传感器,它的values只有一个值(单位是cm,厘米):values[0],表示设备与周围物体之间的距离13使用传感器1.获取SensorManager2.执行SensorManager对象的getDefaultSensor()方法获取对象3.获取Sensor对象的各种属性传感器事件注册传感器publicbooleanregisterListener(SensorEventListenerlistener,Sensorsensor,intrate)传感器采样率SENSOR_DELAY_NORMAL200000微秒SENSOR_DELAY_UI60000微秒SENSOR_DELAY_GAME20000微秒SENSOR_DELAY_FASTEST0微秒

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功