C# Windows Phone 8.1振动设备不';别停下来

C# Windows Phone 8.1振动设备不';别停下来,c#,windows-phone-8,windows-runtime,windows-phone-8.1,windows-phone,C#,Windows Phone 8,Windows Runtime,Windows Phone 8.1,Windows Phone,我在Windows Phone 8.1 XAML应用程序上发现了以下振动设备问题 代码 var vibrationDevice = VibrationDevice.GetDefault(); vibrationDevice.Vibrate(TimeSpan.FromMilliseconds(50)); 第一次呼叫时,振动开始,直到下一次呼叫时才停止。以下通话正常-手机短时间振动并停止 它在Lumia 920上以100%的调用进行复制,在Lumia 930上以1%的调用进行复制。 它在WP 8.

我在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上复制这是框架中的一个bug。我在任务中使用的是在与振动持续时间相同的延迟后取消它:

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

我也用过它,但我收到了测试人员的报告,他写道“有时它不起作用,直到下一次通话时手机才会震动”:(您是否刚刚使用了
取消
方法,或者将调用包装在一个新的
任务中
与˙Task.Run˙?我有很多用户每天都使用小持续时间振动,对此没有任何抱怨。我没有将其包装在
任务中。Run
,我使用以下
任务。延迟(TimeSpan.frommicles(50)).ContinueWith(t=>vibrationDevice.Cancel());