1.光照传感器
textView = (TextView) findViewById(R.id.light_level);
//获得SnesorManager实例对象
SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
//获得Sensor实例对象
Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
//注册SensorEventListener,
sensorManager.registerListener(listener,sensor,SensorManager.SENSOR_DELAY_NORMAL);
第三个参数有4个选项
SENSOR_DELAY_UI、SENSOR_DELAY_NORMAL、SENSOR_DELAY_GAME 和SENSOR_DELAY_FASTEST,更新速率依次递增
private SensorEventListener listener = new SensorEventListener() {
//传感器检测到数值发生改变时就会调用,变化的数值存在SensorEvent的values数组里
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
float value = sensorEvent.values[0];
textView.setText("Current light level is "+value+" lx");
}
//传感器的精度发生变化时会调用
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
}
};
在onDestroy方法中将SensorManager取消注册。
sensorManager.unregisterListener(listener);
2.加速传感器
SensorEventListener listener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
float xValue = Math.abs(sensorEvent.values[0]);
float yValue = Math.abs(sensorEvent.values[1]);
float zValue = Math.abs(sensorEvent.values[2]);
if(xValue>=15||yValue>=15||zValue>=15){
textView.setText(""+number);
number++;
}
}
3.方向传感器