如何在 UWP 中声明 Haptic 类(VibrationDevice)的权限?

Posted

技术标签:

【中文标题】如何在 UWP 中声明 Haptic 类(VibrationDevice)的权限?【英文标题】:How to declare permission for Haptic classes (VibrationDevice) in UWP? 【发布时间】:2018-08-05 23:52:23 【问题描述】:

几个月来,我一直在使用 Windows 10 移动版扩展中的 VibrationDevice 类,但由于我已将我的应用程序更新为仅针对 Windows 10 Fall Creators Update,我必须立即删除此扩展我找不到在我的应用中实现 Windows.Devices.Haptics 命名空间的振动 API 的方法。

这是一个代码sn-p:

using Windows.Devices.Haptics;

if (await VibrationDevice.RequestAccessAsync() == VibrationAccessStatus.Allowed)

    VibrationDevice device = await VibrationDevice.GetDefaultAsync();
    if (device == null) return;

    // Do stuff with the device here

上面的代码总是返回VibrationAccessStatus.DeniedByUser,我找不到明确请求用户许可的方法。所以,我想知道是否可能需要在应用清单中添加一些声明,但我在文档中找不到关于此的任何信息。

我只找到this link,但它只包含sn-ps 以手动添加到应用程序清单中。检查该文件,它说该文件是自动生成的,因此每次重新编译应用程序时都会丢失任何更改,所以我认为这不是正确的解决方案。使用内置的应用清单编辑器,我找不到任何与触觉反馈或人机交互相关的检查功能。

我不确定在这里做什么,有人知道在 UWP 应用中启用这些新 API 的使用所需的步骤吗?

谢谢! ????

【问题讨论】:

"请注意,您的代码应至少从 UI 线程调用一次 RequestAccessAsync。"从 msdn 得到这个。希望你也这样做 【参考方案1】:

[2018 年 3 月 9 日更新]

上面的代码总是返回 VibrationAccessStatus.DeniedByUser,我找不到明确请求用户许可的方法。所以,我想知道是否可能需要在应用清单中添加一些声明,但我在文档中找不到关于此的任何信息。

要使用 Windows.Devices.Haptics.VibrationDevice 类 API,您无需在应用清单中添加额外的声明。如果您发现您的代码总是返回VibrationAccessStatus.DeniedByUser 状态,请检查“Windows 设置、声音 |振动”设置。如果您在“Windows 设置、声音 | ”中关闭振动振动',它将始终返回 DeniedByUser。例如:

这是一个代码示例,展示了如何在支持的硬件上使用振动设备:VibrationDevice Sample。详情请参考。

【讨论】:

您好,感谢您的回答!我已经删除了 Mobile 扩展,因为 W10 Mobile 卡在 Feature2 分支上,并且秋季创作者更新的应用程序无法在其上运行,现在谁可以使用这些 Mobile 扩展?我的意思是,它们是否也适用于某些二合一设备,还是什么?我的意思是,我什至没有检查是否存在新的 Mobile 扩展包,因为 Windows 10 Mobile 从未更新到 Fall Creators Update。谢谢! 我在我的 UWP 项目中添加了对“Windows 10 移动扩展 16299”的引用,并使用我上面的代码在我的 Windows 10 移动(操作系统:15254)上进行了测试。它运作良好。所以,请先尝试一下。 我的问题是针对 FCU 的应用程序,而不是专门针对移动扩展包的应用程序。如果您将较低的 W10 版本设置为最低,我确信它可以在 W10M 上运行,但我的应用程序将 FCU 定位为最低和目标,因此它根本无法在 W10M 上部署。因此我的问题是:由于我的应用程序现在无法在 W10M 上运行,仍然添加这个包和那个代码是否值得?也就是说,除了 W10M 之外,是否还有其他类型的设备现在可以实际使用移动扩展包中的这些 API?谢谢! @Sergio0694 Windows.Phone.Devices.Notification 适用于 windows phone 设备。所以,让我们回到你原来的问题。在使用 Windows.Devices.Haptics 命名空间 API 进行大量测试后,我发现如果在“Windows 设置、声音 | 关闭 Vibrate”。振动',它将始终返回 DeniedByUser。请检查此设置。

以上是关于如何在 UWP 中声明 Haptic 类(VibrationDevice)的权限?的主要内容,如果未能解决你的问题,请参考以下文章

UWP - 在 TextBlock 中垂直居中文本

如何在 UWP 的 TextBox 中添加 2 个按钮? [关闭]

将设置类添加到 UWP 应用

从 UWP 中的自定义 ToolTip 和自定义 Flyout 类取消订阅事件

如何在 C# 中使用 HoloLens 2 在 2D UWP 应用程序中获取 Eye-gaze 位置

2019-11-29-win10-uwp-关联文件