2011-06-20 55 views
0

任何人都可以帮助我了解智能手机中的压力传感器。我猜测TYPE_PRESSURE用于查询大气压力。目前还不清楚值存储在哪里。它是否存储在SensorManager.values字段中? 这个传感器的其他可能用途是什么?智能手机中的压力传感器

回答

0

它的主要用途是告诉高程变化,但我相信有一些智能的方法可以使用这个传感器来完成多项其他任务。

至于把变量拿出来,我很确定它可以像其他android传感器一样工作。你注册一个传感器事件监听器,然后在你的传感器改变你从event.values.clone()例如获取值。

switch (event.sensor.getType()) 
     { 
     case Sensor.TYPE_PRESSURE: 
      m_fPressureVal = event.values.clone(); 
      break; 
        } 
0

压力传感器给出的环境空气压力为hPa或mbar。它的值存储在event.values [0]中。在Android开发人员中心查看关于environment sensors的参考。

这里有一个如何使用它的一个例子:

public class SensorActivity extends Activity implements SensorEventListener { 
private SensorManager mSensorManager; 
private Sensor mPressure; 

@Override 
public final void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    // Get an instance of the sensor service, and use that to get an instance of 
    // a particular sensor. 
    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
    mPressure = mSensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE); 
    } 

    @Override 
    public final void onAccuracyChanged(Sensor sensor, int accuracy) { 
    // Do something here if sensor accuracy changes. 
    } 

    @Override 
    public final void onSensorChanged(SensorEvent event) { 
    float millibars_of_pressure = event.values[0]; 
    // Do something with this sensor data. 
    } 

    @Override 
    protected void onResume() { 
    // Register a listener for the sensor. 
    super.onResume(); 
    mSensorManager.registerListener(this, mPressure, SensorManager.SENSOR_DELAY_NORMAL); 
    } 

    @Override 
    protected void onPause() { 
    // Be sure to unregister the sensor when the activity pauses. 
    super.onPause(); 
    mSensorManager.unregisterListener(this); 
    } 
} 
相关问题