c# - Windows Phone 8.1 VibrationDevice 不会停止振动

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

关于c# - Windows Phone 8.1 VibrationDevice 不会停止振动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33238390/

相关文章:

c# - 如何在tif图像中添加EOFB(传真 block 结束)

windows-phone-8 - Windows Phone 8 加速度计模拟敲击

windows-8 - 使用 WinRT API 编写的应用程序是否可以在 Windows 8 x86、Windows 8 for ARM 和 WP8 上运行?

c# - 如何在 Windows 8 Metro 应用程序中获取 GridView.Selected Item 的滚动位置

c# - 通过 Web API 将 JSON 转换为 RSS?

c# - 以编程方式创建虚拟网络接口(interface)

C# 对象引用未设置为对象的实例。在列表中实例化类?

c# - Windows Phone 8 - 本地化不工作

html - 防止 Internet Explorer 10 移动版创建电话和地址链接

c# - 将 GridLength 转换为 Double