Android 传感器 API
1.1 序言 ? ?【Android蛋蛋网】在这一章我们主要针对Android的传感器(Sensor)进行说明。如果说Java的程序和硬件有些远的感觉,那么可以说传感器距离硬件很近。传感器(Sensor)听起来似乎感觉很难,其实它并不是很难。做起来并很有意思的,我相信,通过我对传感器的介绍你会对它感兴趣的,应为你可以切身体会到它的存在。1.2 传感器(Sensor)是什么???? 传感器是能标识温度,加速度等等物理现象的转换电子信号的机器。Android SDK,在移动设备中提供了各种各样的传感器的API。那么,本章的例程,在模拟器中不能使用,这点请大家注意。需要在实际的手机上测试才能体现。这里我就不进行详细进行说明如何连接手机进行运行程序了,在本网站 【Android蛋蛋网】有对应的介绍,请读者自己参照。1.3? 传感器(Sensor)关联的类(Class)和接口(Interface)???? 首先,我们对Android SDK提供的传感器关联的类和接口进行介绍。1.3.1? android.hardware.Sensor类?? Sensor类,是管理各种传感器的共同属性(名字,版本等等)的类。●主要的常量???? 在Sensor类,能使用的传感器的种类通过常量来定义的(表1-1)。但是根据硬件,传感器搭载是任意的。比如现在市场销售的(Dev Phone,HTC Dream)实际确认有TYPE_ACCELEROMETER,TYPE_ORIENTATION,TYPE_MAGNETIC_FIELD,TYPE_TEMPERATURE四种类别。表1-1 传感器的种类
常量名
说明
实际的值
TYPE_ACCELEROMETER
加速度
1
TYPE_GYROSCOPE
陀螺仪
4
TYPE_LIGHT
光照
5
TYPE_MAGNETIC_FIELD
磁力计
2
TYPE_ORIENTATION
方位传感器
3
TYPE_PRESSURE
压力传感器
6
TYPE_PROXIMITY
距离传感器
8
TYPE_TEMPERATURE
温度传感器
7
TYPE_ALL
全部的传感器
-1
●主要的方法???? Sensor类的主要的方法参照下面的表1-2
方法
处理内容
public float getMaximumRange()
返回传感器的最大值
public String getName()
返回传感器的名字
public float getPower()
f返回传感器的功率(mA毫安)
public float getResolution()
返回传感器的精度
public int getType()
返回传感器的类型
public String getVentor()
返回Vendor名
public int getVersion()
返回传感器的版本号
1.3.2? android.hardware.SensorManager类? SensorManager类是对搭载的移动设备的传感器进行访问的类,用这个类的借口能取得事件*********的登录/删除、传感器的信息。●主要的常量??? 在SensorManager有很多个常量被定义,但是这些中最重要的是关于传感器的反应速度的,如(表1-3)。Android,在*********进行登录的时候通过4个阶段对传感器进行设定的。表1-3 关于传感器的反映速度的常量
常量名 说明 实际的值 SENSOR_DELAY_FASTEST 在游戏想特别快的反应速度的时候使用0 SENSOR_DELAY_GAME 游戏用1 SENSOR_DELAY_UI 用户接口用2 SENSOR_DELAY_NORMAL 取得倾斜度的时候使用(缺省)3 ●主要的方法???? SensorManager类的主要方法如表1-4所示表1-4 SensorManager类的主要方法?
方法 处理内容 public boolean registerListener(????? SensorEventListener listener,????? Sensor sensor,????? int rate)登录被指定反应速度的*********。反应速度的指定,使用前面的(表1-3)的SENSOR_DELAY系列常量public void unregisterListener(SensorEventListener listener)解除全部的传感器的*********的登录public void unregister