//温度传感器和压力传感器的使用
public class TemperatureDemo extends Activity{
private SensorManager sensorManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取传感器管理者
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
//为传感器管理者注册监听器(指明监听哪个传感器和监听速率)NORMAL为标准
sensorManager.registerListener(listener, sensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE),
SensorManager.SENSOR_DELAY_NORMAL);//温度传感器
sensorManager.registerListener(listener, sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE),
SensorManager.SENSOR_DELAY_NORMAL);//压力传感器
}
//传感器监听器
private SensorEventListener listener=new SensorEventListener() {
@Override//传感器改变时调用
public void onSensorChanged(SensorEvent event) {
float[] values=event.values;//获取结果
switch (event.sensor.getType()) {//获取触发的传感器类型
case Sensor.TYPE_AMBIENT_TEMPERATURE://温度传感器
Toast.makeText(getApplicationContext(), "当前温度为:"+values[0], 0).show();
break;
case Sensor.TYPE_PRESSURE://压力传感器
Toast.makeText(getApplicationContext(), "当前压力为:"+values[0], 0).show();
break;
default:
break;
}
}
@Override//传感器进度发生改变时调用
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
@Override
protected void onDestroy() {
super.onDestroy();
if(sensorManager!=null){
sensorManager.unregisterListener(listener);//取消监听
}
}
}