Windows Phone 加速度センサー


Windows Phoneアプリケーション開発入門

CH3COOH(酢酸)の第24回 加速度センサーを使ってみよう! を参考に、初めてのWindows Phone センサーアプリを同じように作ってみました。

エミュレータで、簡単にデバイスの方向をセットすることができます。

image

それにしたがって、どのような方向にデバイスが向いているのか、リアルタイムでエミューレーションできるのは知っていましたが、実際に動かしてみると、やっぱりすごいなぁ・・・

image

なお、accelerometer.ReadingChanged メソッドが、accelerometer.CurrentValueChanged に変更になっていたので、それに伴って少し実装を変える必要がありました。一応 2012/3 時点での対応コードをメモっておきます。

using System;
using System.Windows;
using Microsoft.Phone.Controls;
using Microsoft.Devices.Sensors;

namespace Sensor1
{
    public partial class MainPage : PhoneApplicationPage
    {
        // コンストラクター
        public MainPage()
        {
            InitializeComponent();
        }

        Accelerometer accelerometer;

        private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
        {
            // インスタンスの生成
            accelerometer = new Accelerometer();
            // 加速度センサの値が変化時した際に通知されるイベントにハンドラを登録
            accelerometer.CurrentValueChanged += new EventHandler<SensorReadingEventArgs<AccelerometerReading>>(accelerometer_CurrentValueChanged);       
            // 加速度センサデバイスのデータ取得の開始
            accelerometer.Start();
        }

        void accelerometer_CurrentValueChanged(object sender, SensorReadingEventArgs<AccelerometerReading> e)
        {
            // 別スレッドからのアクセスになるのでInvoke
            Deployment.Current.Dispatcher.BeginInvoke(() => MyReadingChanged(e));
        }

        void MyReadingChanged(SensorReadingEventArgs<AccelerometerReading> e)
        {
            XTextBlock.Text = e.SensorReading.Acceleration.X.ToString(“0.00”);
            YTextBlock.Text = e.SensorReading.Acceleration.Y.ToString(“0.00”);
            ZTextBlock.Text = e.SensorReading.Acceleration.Z.ToString(“0.00”);
        }

        private void PhoneApplicationPage_Unloaded(object sender, RoutedEventArgs e)
        {
            // 加速度センサデバイスのデータ取得の終了
            accelerometer.Stop();
            accelerometer = null;
        }
    }
}

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中


%d人のブロガーが「いいね」をつけました。