加速度センサーの使い方 - 測定値の取得方法

| コメント(0)

加速度センサーは面白いデバイスですが、使うのがちょっと難しい。

まず、センサーの値を読み取るために必要な事。

public class SampleView extends View implements SensorEventListener {
	private SensorManager mSensorManager;
	public SampleView(Context context, AttributeSet attrs) {
		super(context, attrs);
		if( !isInEditMode() ) {
			mSensorManager = (SensorManager) context
					.getSystemService(Context.SENSOR_SERVICE);
		}
	}
	@Override
	public void onSensorChanged(SensorEvent event) {
		if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
			float fx = event.values[0];
			float fy = event.values[1];
			float fz = event.values[2];
			:
			(何かの処理)
			:
		}
	}

	@Override
	public void onAccuracyChanged(Sensor sensor, int accuracy) {
		(測定精度が変わったときに呼ばれる)
	}

	// 測定開始

	void startListen() {
		mSensorManager.registerListener(this, s,
				SensorManager.SENSOR_DELAY_NORMAL);
	}
	// 測定終了

	void stopListen() {
		mSensorManager.unregisterListener(this);
	}
}
上記Viewを用意して、layoutに

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
     :
    <パッケージ名.SampleView
        android:id="@+id/contents"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
   :
でViewが表示されます。適当な時にstartListenとstopListenを呼び出せば測定が開始終了されます。 ここまでは簡単ですが、問題は測定した値の扱い方です。

コメントする