none
не удаётся обработать событие Accelerometer.Shaken RRS feed

  • Вопрос

  • написал приложение для WindowsPhone, в качестве указаний взял данную статью https://msdn.microsoft.com/ru-ru/library/windows/apps/windows.devices.sensors.accelerometer.shaken?cs-save-lang=1&cs-lang=csharp#code-snippet-1

    делал обычное blank app, после встряхивания телефона ничего не происходит...

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Runtime.InteropServices.WindowsRuntime;
    using Windows.Foundation;
    using Windows.Foundation.Collections;
    using Windows.UI.Xaml;
    using Windows.UI.Xaml.Controls;
    using Windows.UI.Xaml.Controls.Primitives;
    using Windows.UI.Xaml.Data;
    using Windows.UI.Xaml.Input;
    using Windows.UI.Xaml.Media;
    using Windows.UI.Xaml.Navigation;
    using Windows.UI.Core;
    using Windows.Devices.Sensors;
    using System.Diagnostics;
    using Windows.Devices;
    using Windows.UI.Xaml.Media.Animation;
    using Windows.UI;
    
    
    namespace App20
    {
        public sealed partial class MainPage : Page
        {
            private Accelerometer _accelerometer;
            private int _shakeCount;
            public MainPage()
            {
                this.InitializeComponent();
                _accelerometer = Accelerometer.GetDefault();
                if (_accelerometer != null)
                {
                    _accelerometer.Shaken += new TypedEventHandler<Accelerometer, AccelerometerShakenEventArgs>(Shaken);
                }
    
            }
    
            async private void Shaken(object sender, AccelerometerShakenEventArgs e)
            {
                await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    _shakeCount++;
                    tb4.Text = _shakeCount.ToString();
                });
            }
        }
    }
    

    подскажите, что не так???

    13 апреля 2015 г. 16:51

Ответы

  • Нашла пример такого вида:

    void AccelerometerReadingChanged(Accelerometer sender, 
    AccelerometerReadingChangedEventArgs args)
    {
    // Взаимодействие с пользовательским интерфейсом
    Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
    AccelerometerReading reading = args.Reading;
    var x = reading.AccelerationX;
    var y = reading.AccelerationY;
    var z = reading.AccelerationZ;
    });
    }
    Отличается от вашего тем, что у вас зачем-то добавлены async и await... Это не асинхронные функции, а асинхронный доступ к интерфейсу предоставляется через Dispatcher.RunAsync.

    14 апреля 2015 г. 6:01

Все ответы

  • А (_accelerometr != null) что возвращает?
    13 апреля 2015 г. 17:01
  • Нашла пример такого вида:

    void AccelerometerReadingChanged(Accelerometer sender, 
    AccelerometerReadingChangedEventArgs args)
    {
    // Взаимодействие с пользовательским интерфейсом
    Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
    AccelerometerReading reading = args.Reading;
    var x = reading.AccelerationX;
    var y = reading.AccelerationY;
    var z = reading.AccelerationZ;
    });
    }
    Отличается от вашего тем, что у вас зачем-то добавлены async и await... Это не асинхронные функции, а асинхронный доступ к интерфейсу предоставляется через Dispatcher.RunAsync.

    14 апреля 2015 г. 6:01