Android应用软件开发

194课时
1.7K学过
8分

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
3分钟

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表示传感器新的精度值。