miyabihitoの日記

個人的な技術メモ

Sensor

各種センサーの使い方

・Sensor
センサークラス
TYPE_MAGNETIC_FIELD:地磁気センサーを表す定数
TYPE_ACCELEROMETER:加速度センサーを表す定数

・SensorManager
センサーを利用するための管理クラス
センサーを利用しないときは、unregisterListenerしておかないと、バッテリーを消費してしまう。
getDefaultSensor:指定したセンサーのオブジェクト取得
registerListener:指定したセンサーのイベントリスナーの設定
unregisterListener:(指定した)センサーのイベントリスナーの解除

・SensorEventListener
センサーの変化の通知を受けるリスナー
onAccuracyChanged:センサーの精度が変化したときに呼び出されるメソッド
onSensorChanged:センサーの値に変化があったとき呼び出されるメソッド


・SensorEvent
onSensorChangedの引数。センサーの値の変化時のイベントオブジェクト
独自に持つのはフィールドのみ。
accuracy:精度
sensor:イベントを発生させたセンサーのオブジェクト
timestamp:タイムスタンプ
values:センサーの値(配列)

・端末の傾きの算出
地磁気センサーと加速度センサーの値から
SensorManagerの下記スタティックメソッドを使用する事で、
端末の傾きを算出することが出来る。
getRotationMatrix:回転行列の取得
(remapCoordinateSystem:座標軸の変更のための回転行列の変換)
getOrientation:回転行列から端末の傾きを取得する