2011-06-20 6 views
0

スマートフォンの圧力センサーを理解するのに役立つ人はいらっしゃいますか。私はTYPE_PRESSUREが大気圧を照会するために使用されていると推測しています。値がどこに格納されているかは不明です。それはSensorManager.valuesフィールドに保存されていますか? このセンサーの他の可能な用途は何ですか?スマートフォンの圧力センサー

答えて

0

主な用途は標高の変化を示すことですが、このセンサーを使用して他の複数のタスクを実行するインテリジェントな方法があると確信しています。

変数を取得するために、私はそれが他のアンドロイドセンサーと同じように機能すると確信しています。あなたはセンサイベントリスナを登録して、センサ上でevent.values.clone()などの値を取得するように変更しました。

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

圧力センサは、周囲気圧をhPaまたはmbar単位で表します。その値はevent.values [0]に格納されます。 Android Dev Centerの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); 
    } 
} 
関連する問題