android之传感器编程.docx

上传人:asd****56 文档编号:79333634 上传时间:2023-03-21 格式:DOCX 页数:6 大小:21.51KB
返回 下载 相关 举报
android之传感器编程.docx_第1页
第1页 / 共6页
android之传感器编程.docx_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《android之传感器编程.docx》由会员分享,可在线阅读,更多相关《android之传感器编程.docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Android传感器编程知识点概述:1. 传感器的概念2. Android中传感器的种类3. Android中传感器的功能知识点详述:1. 传感器的概念传感器是一种物理装置或生物器官,能够探测、感受外界的信号、物理条件(如光、热、湿度)或化学组成(如烟雾),并将探知的信息传递给其它装置或器官。同时也可以说传感器是一种检测装置,能感受被测量的信息,并能将检测的感受到的信息,按一定规律变换成为电信号或其它所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。它是实现自动检测和自动控制的首要环节。根据工作原理,传感器可分为物理传感器和化学传感器两大类。物理传感器应用的是物理效应,

2、诸如离化、极化、热电、光电、磁电等效应。被测信号量的微小变化都将转换成电信号。化学传感器包括哪些以化学吸附、电化学反应等现象为因果关系的传感器。被测信号量的微小变化也将转换成电信号。注:目前大多数传感器是以物理原理为基础运作的。2. Android中传感器的种类Android操作系统中内置了很多传感器,同时传感器也成为了手机硬件的重要组成部分。比如在部分游戏或应用软件中可以自动识别屏幕的横屏、竖屏方向来改变屏幕显示布局,这就是因为手机硬件支持了重力感应、方向判断等功能。在Android中支持下面几种传感器:l Sensor.GRAVITY: 重力传感器l Sensor.TYPE_ACCELER

3、OMETER: 加速度传感器l Sensor.TYPE_GYROSCOPE: 陀螺仪传感器l Sensor.TYPE_LIGHT: 亮度(光线)传感器l Sensor.TYPE_MAGNETIC_FIELD: 地磁传感器l Sensor.TYPE_ORIENTATION: 方向传感器l Sensor.TYPE_PRESSURE: 压力传感器l Sensor.TYPE_PROXIMITY: 近程传感器l Sensor.TYPE_TEMPERATURE: 温度传感器3. Android中传感器的功能在Android中使用传感器,首先需要了解SensorManager和SensorEventList

4、ener.SensorManager是所有传感器的一个综合管理类,包括了传感器的种类、采样率、精准度等。可以通过getSystemService方法来获取一个SensorManager实例。代码如下:SensorManager mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);取得SensorManager实例之后,可以通过getSensorList方法来获得需要的传感器类型,存到一个传感器列表中,如下代码可以得到以下方向传感器:List sensors = mSensorManager.getSensorList

5、(Sensor.TYPE_ORIENTATION);要与传感器交互,应用程序中必须注册相关的传感器, 当不再用时还要注销.代码如下:/注册传感器/参数一表示接收信号的Listener实例/参数二表示想接收的传感器类型/参数三表示接收频度, SensorManager.SENSOR_DELAY_ FASTEST表示尽可能快地获得传感器数据Boolean mRegisteredSensor = mSensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_FASTEST);/注销传感器mSensorManager.

6、unregisterListener(this);SensorEventListener是使用传感器的核心,包括以下两个方法必须实现:l onSensorChanged(SensorEvent event)方法在传感器值更改时调用.该方法只由受此应用程序监视的传感器调用.该方法的参数是一个SensorEvent对象,该对象主要包括一组浮点数,表示传感器获得的方向、加速度等信息。如以下代码可以取得其值:float x = event.valuesSensorManager.DATA_X;float y = event.valuesSensorManager.DATA_Y;float z = ev

7、ent.valuesSensorManager.DATA_Z;注: 其中SensorEvent类的values变量非常重要,该变量的类型是float。但该变量最多只有3个元素,而且根据传感器的不同,values变量中元素所代表的含义也不同。在方向传感器中values变量的3个值都表示度数,它们的含义如下:values0:该值表示方位,也就是手机绕着Z轴旋转的角度。0表示北(North);90表示东(East);180表示南(South);270表示西(West), 可以利用这个特性来实现电子罗盘。values1:该值表示倾斜度,或手机翘起的程度。当手机绕着X轴倾斜时该值发生变化。values1

8、的取值范围是-180values1180。假设将手机屏幕朝上水平放在桌子上,这时如果桌子是完全水平的,values1的值应该是0。这时从手机顶部开始抬起,直到将手机沿X轴旋转180度(屏幕向下水平放在桌面上)。在这个旋转过程中,values1会在0到-180之间变化,也就是说,从手机顶部抬起时,values1的值会逐渐变小,直到等于-180。如果从手机底部开始抬起,直到将手机沿X轴旋转180度,这时values1会在0到180之间变化。也就是values1的值会逐渐增大,直到等于180。可以利用values1和下面要介绍的values2来测量桌子等物体的倾斜度。values2:表示手机沿着Y轴的滚动角度。取值范围是-90values290。假设将手机屏幕朝上水平放在桌面上,这时如果桌面是平的,values2的值应为0。将手机左侧逐渐抬起时,values2的值逐渐变小,直到手机垂直于桌面放置,这时values2的值是-90。将手机右侧逐渐抬起时,values2的值逐渐增大,直到手机垂直于桌面放置,这时values2的值是90。在垂直位置时继续向右或向左滚动,values2的值会继续在-90至90之间变化。l onAccuracyChanged(Sensor sensor, int accuracy)方法在传感器的精准度发生改变时调用.参数一表示传感器,参数二表示该传感器新的准确值.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁