一、使用
1、获取到SensorManager 的实例
SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
2、SensorManager 是系统所有传感器的管理器,有了它的实例之后就可以调用getDefaultSensor()犯法来得到任意传感器类型了
Sensor sensor = senserManager.getDefaultSensor(Sensor.TYPE_LIGHT);
3、对传感器的输出信号进行监听
SensorEventListener listener = new SensorEvenListener(){
//传感器检测到的光照强度数值变化
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
float value = sensorEvent.values[0];
mLightLevel.setText("Current light level is "+ value +" lx");
}
//传感器的精度变化时调用
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
}
};
4、注册监听事件
sensorManager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_NORMAL);
第三个参数表示传感器输出信息的更新速率,共有SENSOR_DELAY_UI、 SENSOR_DELAY_NORMAL、SENSOR_DELAY_GAME、SENSOR_DELAY_FASTEST
二、注意事项
当程序退出或传感器使用完毕时,一定要调用unregisterListener()方法将使用的资源释放掉。
@Override
protected void onDestroy() {
super.onDestroy();
if(sensorManager != null){
sensorManager.unregisterListener(listener);
}
}