5.1相关知识
相关知识
SensorManager类
下面介绍SensorManager类的主要方法。
Sensor getDefaultSensor(int type):获得给定类型的默认传感器。参数type表示所请求的传感器类型
List<Sensor> getSensorList(int type):得到指定类型可用的传感器列表
boolean registerListener(SensorEventListener listener,Sensor sensor,int rate):对某个给定的传感器注册传感事件监听器,如果注册成功则返回true,否则则返回false。参数listener表示一个SensorEventListener对象;参数sensor表示需要注册的传感器;参数rate表示传感器事件传送的速度,可以理解为采样率。
boolean registerListener(SensorEventListener listener,Sensor sensor,int rate,Handler handler):对某个给定的传感器注册传感事件监听器。参数handler表示传感器事件被传递给的Handler对象。
void unregisterListener(SensorEventListener listener,Sensor sensor):取消传感器监听器的注册。参数listener表示监听器;参数sensor表示需要取消注册的传感器。
void unregisterListener(SensorEventListener listener):取消监听器的注册,取消所有与该监听器有关的传感器的监听。
Sensor类
Sensor类中含有大量的传感器属性相关的方法和属性,这里仅列出几个。
int TYPE_LIGHT,表示光线传感器
int TYPE_LINEAR_ACCELERATION,表示线性加速器
int TYPE_GRAVITY,表示重力传感器
float getMaximumRange() 最大取值范围
String getName() 获取设备名称
int getType() 获取传感器类型
SensorEventListener接口
SensorEventListener是一个接口,当传感器的数值发生变化时,该接口被用来接收来自SensorManager的通知。
SensorManager的registerListener和unregisterListener方法都使用了SensorEventListener对象作参数。要实现SensorEventListener接口,必须实现如下两个方法:
- l public void onSensorChanged(SensorEvent event)
该方法表示当传感器检测到值发生变化时要做什么。其参数event获取当前监听事件的参数,用于表示传感器的事件、类型、时间戳和精度等信息。由于不同的传感器得到数据数量也各不相同,可能是多个,所以event.values是一个float数组,用于存放传感器返回的值,如果只有1个值就用event.values0。
- l onAccuracyChanged(Sensor sensor,int accuracy)
当传感器的精度发生变化时自动调用该方法。其中参数sensor表示发生精度变化的传感器;参数accuracy表示传感器新的精度值。
学员评价