本記事で紹介するセンサー
本記事では以下のセンサーについて紹介します。
- 傾斜センサー:端末の傾きを取得します。
- 方位センサー:デバイスの向きを取得します。
- 光センサー:端末の周りの明るさを取得します。
- 位置情報:端末の存在する位置を取得します。
センサーを利用する
傾斜センサー
傾斜センサー(Inclinometer)を利用することで端末の傾きを測定できます。
傾斜センサーの値を取得する
(サンプルファイル:「InclinometerSample.zip」)
傾斜センサーの値は、以下のようにReadingChangedイベントで取得します。センサー系のAPIは、多くが同じインターフェースで操作可能な設計になっています。以下のコードも前編で何度か目にしたものとほぼ同じコードです。
this.inclinometer = Inclinometer.GetDefault(); if (this.inclinometer == null) { System.Diagnostics.Debug.WriteLine("Inclinometer is null"); } else { this.inclinometer.ReadingChanged += inclinometer_ReadingChanged; }
ReadingChangedで取得した値は、以下のように取り出します。
async void inclinometer_ReadingChanged(Inclinometer sender, InclinometerReadingChangedEventArgs args) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { YawDegrees.Text = args.Reading.YawDegrees.ToString(); PitchDegrees.Text = args.Reading.PitchDegrees.ToString(); RollDegrees.Text = args.Reading.RollDegrees.ToString(); }); }
また以下のようにイベントハンドラーではなくGetCurrentReading()メソッドを用いて、任意のタイミングで値を取得することも可能です。
InclinometerReading reading = this.inclinometer.GetCurrentReading();
取得した値はそれぞれ以下のような意味を持ちます
YawDegrees(ヨー)
Z軸方向の回転を表します。Z軸は端末の背面から表面にむけて垂直に伸びる軸です。また回転の値は反時計回りに変化します。
PitchDegrees(ピッチ)
X軸方向の回転を表します。X軸は端末の画面を手前、Windowsボタンを下にした場合に左から右に伸びる軸です。回転の値はYawDegrees同様に反時計回りに変化します。
RollDegrees(ロール)
Y軸方向の回転を表します。Y軸はは端末の画面を手前、Windowsボタンを下にした場合に下から上に伸びる軸です。回転の値は先の2つの値と同様に反時計回りに変化します。