Sensor

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.4  android.hardware.SensorEvent 
     SensorEvent类是在传感器事件(onAccuracyChanged  , onSensorChanged 稍后介绍)为了对能取得的信息进行整理管理的类。被管理的值全部用公用的field定义的。

●主要的字段(field)
SensorEvent类的主要的field如表1-5所示
                              表1-5    SensorEvent类的主要的field

字段( field )
内容
public int accuracy
传感器的精度
public Sensor sensor
传感器的instance
public long timestamp
时间(毫微秒)
public final flaot[] values
传感器的值

     1.3.5  android.hardware.SensorEventListener接口
   
SensorEventListener接口是为了取得传感器的事件的事件监听器。前面所说的
  SensorManager类具有登录删除功能。在这个封装的接口中可以取得传感器的值。

●主要的事件
方法
处理内容
void onAccuracyChanged(Sensor sensor,int accuracy)
传感器的精度变化的时候,此方法被调用
void onSensorChanged(SensorEvent event)
传感器的值改变的时候,此方法被调用

1.3.6  传感器的值取得及例程
      传感器值取得需要通过SensorManager#registerListener方法对加载SensorEventListener接口的对象进行登录处理。从登录监听器开始到传感器的值取得的动作处理过程如图1-2那样所示。在程序列表1-2中的传感器的值取得,画面处理结果(图1-3)所示。
    

你可能感兴趣的:(Sensor)