2011-06-20 58 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); 
    } 
} 
相關問題