您的位置:首页 > 移动开发 > Android开发

传感器的使用:光线传感器

2015-09-28 18:53 465 查看
先在布局中建立一个TextView, 用于测试当前的光照强度:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
android:id="@+id/light_level"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textSize="20sp" />

</RelativeLayout>

在Activity 中要进行以下几步操作:
1. 获取SensorManager 和Sensor 实例

private SensorManager sensorManager;
sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
2. 通过SensorEventListener 对传感器进行监听:

private SensorEventListener listener = new SensorEventListener(){
public void onAccuracyChanged(android.hardware.Sensor sensor, int accuracy) {

}

public void onSensorChanged(android.hardware.SensorEvent event) {
float value = event.values[0];
lightLevel.setText("Current light level is " + value + " lx");
}
};
当传感器精度改变时会调用onAccuracyChanged方法;
当传感器监测的数值发生变化的时候onSensorChanged 方法会被调用。

3. 调用SensorManager 的registerListener() 来注册传感器

sensorManager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_NORMAL);第一个参数是SensorEventListener 实例,第二个参数是Sensor 实例,第三个参数是信息的更新速率。
4. 记着要在使用完毕后释放资源

@Override
protected void onDestroy() {
super.onDestroy();
if(sensorManager != null){
sensorManager.unregisterListener(listener);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android开发 传感器