Windows Phone 8.1 VibrationDevice 不停止振动

Windows Phone 8.1 VibrationDevice doesn't stop vbration

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

代码

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

第一次调用时振动开始,直到下次调用才停止。以下呼叫工作正常 - phone 振动短时间并停止。

它在 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();
    });
}