C# Windows Phone 8.1振动设备不';别停下来
我在Windows Phone 8.1 XAML应用程序上发现了以下振动设备问题 代码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.
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());