第 12 章 Android 特色开发, 使用传感器

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()释放资源.

你可能感兴趣的:(第 12 章 Android 特色开发, 使用传感器)