某传感器的编程.doc

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三十七章 传感器编程 一、概述 传感器是一种物理装置或生物器官,能够探测、感受外界的信号,如光、热、湿度、烟雾等,并将探知的信息传转换为电信号或其它形式的信息。 目前许多智能手机的硬件设备都提供了对传感器的支持,如手机设备的摆放方向、外界磁场、温度和压力等。Android的SDK提供了对这些传感器的支持, Android的应用程序能通过这些传感器获取外界环境的状态。对传感器设备的开发可以有效的提高用户体验,设计出如:指南针、水平仪等应用,传感器的开发也广泛应用于游戏,通过传感器感知玩家的动作,从而在游戏中提供对这些动作的响应。 以下将介绍Android支持的传感器、与传感器相关的类、传感器的开发步骤和应用案例。 二、传感器的类别 图1列出Android支持的传感器的种类: 传感器名称 在Sensor类中对应的常量 加速度传感器 Sensor.TYPE_ACCELEROMETER 陀螺仪传感器 Sensor.TYPE_GYROSCOPE 亮度传感器 Sensor.TYPE_LIGHT 磁场传感器 Sensor.TYPE_MAGNETIC_FIELD 方向传感器 Sensor.TYPE_ORIENTATION 压力传感器 Sensor.TYPE_PRESSURE 近程传感器 Sensor.TYPE_PROXIMITY 温度传感器 Sensor.TYPE_TEMPERATURE Android支持的所有的传感器类型 Sensor.TYPE_ALL 图1 【提示】 不同的智能手机的硬件支持的传感器的类别不同,如有的手机不支持温度传感器,因此在这样的手机上无法实现温度的感知操作。 本章案例介绍加速度、方向、磁场这三个传感器的应用,这三种传感器绝大部分智能手机均支持。 三、Sensor类 ㈠概述 表示传感器的种类,如图1所示的传感器类型在Sensro类中均用常量来表示。 ㈡常用方法 int getType(); ·作用:返回传感器的种类,传感器种类用图1所示的常量来表示。 ·示例:int sensorType=getType(); ㈢创建Sensor对象 Sensor对象需要用SensorManager类的静态方法getDefaultSensor()方法创建,并通过一个int类型的参数指明该Sensor对象代表的传感器类型,示例如下: Sensor sensor; sensor=mSensorManager.getDefaultSensor( Sensor.TYPE_ACCELEROMETER); 【提示】 1、以上代码创建了代表加速度传感器的对象sensor。 2、mSensorManager是传感器管理器对象,该对象是SensorManger类,该类将在下面介绍。 四、SensorManager类 ㈠概述 创建Sensor对象、设置传感器采集数据的频率、设置传感器监听事件以捕获指定类型的传感数据。 ㈡创建SensorManager对象 1、示例: SensorManager mSensorManager; mSensorManager=(SensorManager)getSystemService(SENSOR_SERVICE); 2、说明 第一行定义了该类的一个引用型变量。 第二行调用Context类的静态方法getSystemService方法,并指定了参数为Context类的一个常量SENSOR_SERVICE,在内存的堆中创建了SensorManager类的一个对象。 ㈡重要常量 图2是SensorManager类中的重要常量,这些常量代表获取数据的频率 常量名 获取数据的频率 SensorManager.SENSOR_DELAY_FASTEST 最快,该种模式耗电量大,影响程序的性能。当需要高密度采集传感器数据时,才考虑采取此方式。 SensorManager.SENSOR_DELAY_GAME 适合一般实时性要求的数据采集频率,如游戏。 SensorManager.SENSOR_DELAY_NORMAL 适合于实时性要求不高的数据采集场合。 SensorManager.SENSOR_DELAY_UI 适合普通用户界面的频率,省电、系统开销少,但延迟较大。 图2 ㈢常用方法 1、Sensor getDefaultSensor(int type); 【作用】创建type值指定的传感器对象。 (type取值参见”图1 Android支持的传感器的种类”) 【示例】创建加速度传感器对象 Sensor sensor; sensor=mSensorManager.getDefaultSensor( Sensor.TYPE_ACCELEROMETER); 2、boolean

文档评论(0)

linlin921 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档