加速度センサーは Microsoft.Devices.Sensors.dll に含まれている Microsoft.Devices.Sensors.AccelerometerSensor クラスを使うだけで利用できます。
この AccelerometerSensor クラスもシングルトンになっているので All か Default 静的プロパティを経由してインスタンスを得ます。All にはデバイスに搭載されている全ての加速度センサーが含まれてますが、通常は Default で問題ないと思います。
インスタンスを得たらイベントハンドラを登録し、Start メソッドを呼び出して値の読み込みを開始します。
// 加速度センサーのインスタンスを得る var accelerometer = AccelerometerSensor.Default; // 値が変化したことを受け取るイベントハンドラを登録する accelerometer.ReadingChanged += new EventHandler<AccelerometerReadingAsyncEventArgs>(Accelerometer_ReadingChanged); // 読み込みを開始する accelerometer.Start();
イベントハンドラでは AccelerometerReadingAsyncEventArgs から AccelerometerReading を取得します。
private void Accelerometer_ReadingChanged(object sender, AccelerometerReadingAsyncEventArgs e) { // e.Value は Sensor<AccelerometerReading> なのでこうなる var reading = e.Value.Value; // とりあえず値を表示させる Debug.WriteLine("X:{0} Y:{1} Z:{2}", reading.X, reading.Y, reading.Z); }
AccelerometerReading 構造体は X,Y,Z プロパティを持っているので、あとはアプリ側で好きに利用することができます。