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