我在Windows Phone 8.1 XAML应用程序上发现了以下振动设备问题。

代码

var vibrationDevice = VibrationDevice.GetDefault();
vibrationDevice.Vibrate(TimeSpan.FromMilliseconds(50));


第一次调用时,振动开始,直到下一次调用时才停止。以下通话正常运行-手机短暂振动并停止。

它在Lumia 920上以100%的通话次数进行播放,在Lumia 930上以1%的通话次数进行播放。
它转载于WP 8.0和WP 8.1

最佳答案

这是框架中的错误。我使用的是在与振动持续时间相同的延迟后取消任务中的振动:

private const int DefaultVibrationDuration = 20;

if (this.EnableVibration)
{
    VibrationDevice.GetDefault().Vibrate(TimeSpan.FromMilliseconds(DefaultVibrationDuration));

    // Run task to cancel vibration (this is an error in phone framework where the vibration does
    // not stop after running the first time)
    Task.Run(async () =>
    {
        await Task.Delay(DefaultVibrationDuration);
        VibrationDevice.GetDefault().Cancel();
    });
}

08-25 23:51