XOOM(Android 3.1)が内蔵している気圧センサー(Sensor.TYPE_PRESSURE)を使って,気圧を求めるサンプルプログラムです.

Androidで気圧を計測する

Motorola XOOMには気圧センサーが内蔵されているということで, Barometer HD というアプリで遊んでみました.

1027a.jpg

おぉー気圧がでてるわよ (´∀`)

しかしやはり自分でも取得したいということで,試してみました.

といっても単に,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
・・・

なお,この方法での気圧測定を,山旅ロガーに組み込んでいます.山旅ロガーで気圧測定


© 2024 KMIソフトウェア