酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windows Phone Shake Gestures Libraryを使ってShakeGestureを受け取る

概要

端末を振った動作をシェイクといいます。そのシェイクを取得することが可能です。

Tips

シェイクイベントを取得する

端末を振ったらイベントを発生されます。

protected override void OnNavigatedTo(NavigationEventArgs e) {
    // ShakeGestureのイベントハンドラを設定
    ShakeGesturesHelper.Instance.ShakeGesture += Instance_ShakeGesture;
    // Shekeが反応する閾値を設定(ここの値を多くすれば反応しにくくなる)
    ShakeGesturesHelper.Instance.MinimumRequiredMovesForShake = 6;
    // ShakeGestureの監視を開始
    ShakeGesturesHelper.Instance.Active = true;
}

protected override void OnNavigatedFrom(NavigationEventArgs e) {
    // ShakeGestureの監視を終了
    ShakeGesturesHelper.Instance.Active = false;
    // ShakeGestureのイベントハンドラを設定
    ShakeGesturesHelper.Instance.ShakeGesture -= Instance_ShakeGesture;
}

void Instance_ShakeGesture(object sender, ShakeGestures.ShakeGestureEventArgs e) {
    Observable.Start(() => e.ShakeType)
        .ObserveOnDispatcher()
        .Subscribe(type => {
            VibrateController.Default.Start(TimeSpan.FromMilliseconds(700));
        });
}

参照