0

我在查找有关正确使用 Accelerometer 以及使用 Dispatcher 更新文本框的文档或示例时遇到问题。似乎应该很容易,但所有示例都是 8.0,显然使用Microsoft.Devices.Sensors;

显然你应该使用 Windows.Devices.Sensors;您会认为它们是相同的,但是 Start() 和 Stop 方法之类的东西不再存在。我试图在这里使用 Microsoft 的 Microsoft AccelerometerHelper 类

旧的 Dispatcher 现在也是基于的 CoreDispatcher吗?

也试图使用这个库,但它也使用旧的命名空间:http ://code.msdn.microsoft.com/wpapps/Shake-Gesture-Library-04c82d5f

任何人都可以提供一个示例或指导我了解有关在 8.1 中如何注册加速度计事件并使用 x 轴之类的内容更新 UI 文本框的一些信息吗?

非常感谢!

4

3 回答 3

3

试试这个代码用于Windows Phone 8.1 Silverlight应用程序。它使用Accelerometer来自的类Microsoft.Devices.Sensors

// initialize
Accelerometer accelerometer = new Accelerometer();
accelerometer.CurrentValueChanged += accelerometer_CurrentValueChanged;
accelerometer.Start();

void accelerometer_CurrentValueChanged(object sender, SensorReadingEventArgs<AccelerometerReading> e)
{
    Dispatcher.BeginInvoke(() =>
    {
        XAxisText.Text = e.SensorReading.Acceleration.X.ToString();
    });
}

对于Windows Phone 通用应用程序,使用下一个代码:

Accelerometer accelerometer = Accelerometer.GetDefault();
accelerometer.ReadingChanged += accelerometer_ReadingChanged; 

async void accelerometer_ReadingChanged(Accelerometer sender, AccelerometerReadingChangedEventArgs args)
{
    await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        XAxisText.Text = args.Reading.AccelerationX.ToString();
    });            
}
于 2014-07-05T18:53:42.010 回答
0

我最终为每个 Microsoft 的这个特定应用程序使用了 Silverlight 8.1。他们正在“调查”为什么电话 API 是唯一没有震动事件的 API。

于 2014-07-09T12:53:00.707 回答
0

我遇到了同样的问题,不知道如何让 Shake 事件起作用。然后我在 Microsoft 网站http://code.msdn.microsoft.com/Windows-Phone-81-samples-08631ca7上找到了这个示例 。所以看起来我们必须编写自己的 Shake Event 实现)

于 2014-07-08T07:08:25.787 回答