1###传感器介绍
手机中内置的传感器是一种微型的物理设备,它能够探测、感受到外界的信号,并按一定规律转换成我们所需要的信息。
Android 手机通常都会支持多种类型的传感器,如光照传感右器、加速度传感器、地磁传感器、压力传感器、温度传感器等。
虽然 Android 系统支持十余种传感器的类型,但是手机里的传感器设备却是有限的,基本上不会有哪部手机能够支持全部的传感器功能。
12.2光照传感器
12.2.1光照传感器的用法
SensorManager是系统所有传感器的管理器.现货区SensorManager的实例.
SensorManager sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
SensorManager的getDefaultSensor()用于得到任意的传感器类型.
Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
通过SensorEventListener实现对传感器型号的监听.他是个借口,定义了onSensorChanged()和onAccuracyChanged().
SensorEventListener listener = new SensorEventListener() {
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
}
};
当传感器精度变化时,调用onAccuracyChanged();当传感器的数值发生变化时,调用onSensorChanged().onSensorChanged()的阐述SensorEvent包含了一个valuse数组,所有的信息都存储在这里.
SensorEventListener需要SensorManager调用registerListener()方法注册才可以生效.registerListener()接受三个参数,SensorEventListener,Sensor,和更新速率.第三个参数是用于表示传感器输出信息的更新速率,共有 SENSOR_DELAY_UI、 SENSOR_DELAY_NORMAL、SENSOR_DELAY_GAME 和 SENSOR_DELAY_FASTEST 这四种值可选,它们的更新速率是依次递增的。
当程序退出或者传感器使用完毕时,要调用unregisterListener()释放资源.