橘子味的心
标题:9.10 Android环境传感器开发

Android平台支持的环境传感器有如下几种:
  • TYPE_AMBIENT_TEMPERATURE。
  • TYPE_LIGHT。
  • TYPE_PRESSURE。
  • TYPE_RELATIVE_HUMIDITY。
  • TYPE_TEMPERATURE。

下列示例代码演示了使用压力传感器测量大气气压的方法,其他环境传感器的使用方法相同,在此不再一一描述(可参考《运动传感器教程》):
  1. public class SensorActivity extends Activity implements SensorEventListener {
  2. private SensorManager mSensorManager;
  3. private Sensor mPressure;
  4.  
  5. @Override
  6. public final void onCreate(Bundle savedInstanceState) {
  7. super.onCreate(savedInstanceState);
  8. setContentView(R.layout.main);
  9. // Get an instance of the sensor service, and use that to get an instance of
  10. // a particular sensor.
  11. mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
  12. mPressure = mSensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE);
  13. }
  14.  
  15. @Override
  16. public final void onAccuracyChanged(Sensor sensor, int accuracy) {
  17. // Do something here if sensor accuracy changes.
  18. }
  19.  
  20. @Override
  21. public final void onSensorChanged(SensorEvent event) {
  22. float millibars_of_pressure = event.values[0];
  23. // Do something with this sensor data.
  24. }
  25.  
  26. @Override
  27. protected void onResume() {
  28. // Register a listener for the sensor, super.onResume();
  29. mSensorManager.registerListener(this, mPressure, SensorManager.SENSOR_DELAY_NORMAL)
  30. }
  31.  
  32. @Override
  33. protected void onPause() {
  34. // Be sure to unregister the sensor when the activity pauses.
  35. super.onPause();
  36. mSensorManager.unregisterListener(this);
  37. }
  38. }