2011年6月9日に開催されたWindow Phone Developer DayのコミュニティLTにてお話しさせて頂きました。まとめ切れていませんがよかったらどうぞ。
20110609 windows phone 搭載のセンサーを活用しよう!
View more presentations from ch3cooh 393.
Windows Phone OS 7.0のデバイスにメーカーが搭載しないといけないセンサーはこんな感じ。
- 加速度センサー
- 環境光センサー
- 接近センサー
- Assisted GPS
- FMラジオチューナー
端末側のハードウェア仕様を一律にすることで、端末間の差別化をしにくいのはあるけれど、その前にハードウェアとソフトウェアをシームレスに統合することによってユーザービリティを高めることができます(Appleみたいや)。
Windows Phoneに関してはアプリを作る立場なので、ハードウェアは統一されてる方が嬉しいですね。Mangoになって更にセンサーが増えて、さらに使いやすくなりました。Accelerometer(加速度センサー)は前からそうだったんですが、SensorBase
CurrentValue | センサーの現在値を取得 |
CurrentValueChanged | 値が変わった時に通知される |
TimeBetweenUpdates | 値の更新間隔の設定/取得 |
Start | センサーから値を取得開始 |
Stop | センサーから値を取得終了 |
例えばこんな感じです。これはモーションセンサーの例です。TimeBetweenUpdatesプロパティで何ミリ秒毎に値を更新するかを設定してStartメソッドを呼ぶだけ。値が変更されたらCurrentValueChangedイベントが呼ばれます。このあたりは、neuecc先生がRxを使って上手く書いてくれそうなので首を長くして待っています。
var motion = new Motion(); motion.TimeBetweenUpdates= TimeSpan.FromMilliseconds(20); motion.CurrentValueChanged+= motion_CurrentValueChanged; motion.Start();
あと、センサー系は微妙にエミュレータでテスト出来ないのですが、まだ記録も出来ないBeta版なので完成を待ちましょう。