XOOM(Android 3.1)が内蔵している気圧センサー(Sensor.TYPE_PRESSURE)を使って,気圧を求めるサンプルプログラムです.
Androidで気圧を計測する
Motorola XOOMには気圧センサーが内蔵されているということで,
Barometer HD
というアプリで遊んでみました.
おぉー気圧がでてるわよ (´∀`)
しかしやはり自分でも取得したいということで,試してみました.
といっても単に,Sensor.TYPE_PRESSUREを使うだけですみました.
onSensorChangedで受け取った配列の先頭に,hPa単位の気圧の値が入っていました.
その他の要素はゼロでした.
MainAct.java
package
com.kamoland.pressure;
import
java.util.List;
import
android.app.Activity;
import
android.content.Context;
import
android.hardware.Sensor;
import
android.hardware.SensorEvent;
import
android.hardware.SensorEventListener;
import
android.hardware.SensorManager;
import
android.os.Bundle;
import
android.util.Log;
public
class
MainAct extends
Activity {
private
SensorManager mSensorManager;
private
SensorEventListener mSensorEventListener;
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
mSensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
mSensorEventListener = new
SensorEventListener() {
public
void
onSensorChanged(SensorEvent event) {
float
[] val = event.values.clone();
// 取得した気圧をログに出力する
Log.d("**pressure"
, "気圧="
+ val[0] + "hPa"
);
}
public
void
onAccuracyChanged(Sensor sensor, int
accuracy) {
}
};
setContentView(R.layout.main);
}
@Override
public
void
onResume() {
super
.onResume();
List<Sensor> sl = mSensorManager.getSensorList(Sensor.TYPE_PRESSURE);
if
(! sl.isEmpty()) {
// 気圧センサーがあれば,開始する
mSensorManager.registerListener(mSensorEventListener,
sl.get(0), SensorManager.SENSOR_DELAY_NORMAL);
}
}
@Override
public
void
onPause() {
mSensorManager.unregisterListener(mSensorEventListener);
super
.onPause();
}
}
ログへの出力例
10-27 21:05:11.030: DEBUG/**pressure(23556): 気圧=1024.82hPa
10-27 21:05:11.430: DEBUG/**pressure(23556): 気圧=1024.85hPa
10-27 21:05:11.640: DEBUG/**pressure(23556): 気圧=1024.88hPa
10-27 21:05:12.230: DEBUG/**pressure(23556): 気圧=1024.83hPa
10-27 21:05:12.440: DEBUG/**pressure(23556): 気圧=1024.86hPa
10-27 21:05:13.240: DEBUG/**pressure(23556): 気圧=1024.89hPa
10-27 21:05:13.630: DEBUG/**pressure(23556): 気圧=1024.85hPa
10-27 21:05:13.830: DEBUG/**pressure(23556): 気圧=1024.88hPa
・・・
なお,この方法での気圧測定を,山旅ロガーに組み込んでいます.山旅ロガーで気圧測定