Androidの加速度センサーの使い方
Androidのセンサーが色々あるのでそれぞれの使い方のお勉強まずは、
「加速度センサー」
まず、前提としてAndroidの加速度センサーは、3軸加速度センサーなのでX軸、Y軸、Z軸の3軸方向への加速度を捉える事が出来ます。
X、Y、Z軸はそれぞれ以下の内容になっています。
- X軸:端末の右側から受ける加速度
- Y軸:端末の上側から受ける加速度
- Z軸:端末のディスプレイ側から受ける加速度
それでは、加速度センサーの使い方をコードを元に勉強していきたいと思います。
センサーを使う為には、まずは、「SensorManager」のインスタンスを生成します。
次に、センサーのイベントリスナーの設定です。
イベントリスナーの設定には、「SensorManager」クラスの「registerListener」メソッドを使用します。
この時に、対象のセンサーが存在しているかどうかは、「SensorManager」クラスの「getDefaultSensor」メソッドまたは、「SensorManager」クラスの、「getSensorList」メソッドの戻り値を利用して確認します。
イベントリスナーをセットしただけでは、アプリケーションを落としてもセンサーがずっと動作し続けるので、
「SensorManager」クラスの、「unregisterListener」でイベントリスナーを解除します。
これで、加速度センサーからの値を取得する準備ができたので値の取得処理です。
これは、「SensorEventListener」をimplementsして「onAccuracyChanged」「onSensorChanged」の2つのメソッドを実装します。
onAccuracyChanged | センサーの精度の更新に対するメソッド |
---|---|
onSensorChanged | センサーの取得値の更新に対するメソッド |
なので、今回は、「onSensorChanged」メソッドを実装します。
これで、加速度センサーからの値が取得できている事が確認出来たかと思います。
実際に使用する為には、もう少し計算式を使用して誤差を省かないとそのままの値では、手による細かな振動なども入ってしまったりするので注意が必要です。
サンプルプログラム
関連する記事:
- Androidのセンサーを調べてみる
- LaravelのEloquent ORMの仕組みが面白い
- iPhoneアプリのUITableViewの編集モードを使う場合の注意点
- iPhoneでUILabelの高さ(height)を計算する方法
- FuelPHPでのキャッシュライブラリの調査
コメント 0