如何在 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?谢谢! @Sergio0694Windows.Phone.Devices.Notification
适用于 windows phone 设备。所以,让我们回到你原来的问题。在使用 Windows.Devices.Haptics
命名空间 API 进行大量测试后,我发现如果在“Windows 设置、声音 | 关闭 Vibrate
”。振动',它将始终返回 DeniedByUser。请检查此设置。以上是关于如何在 UWP 中声明 Haptic 类(VibrationDevice)的权限?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UWP 的 TextBox 中添加 2 个按钮? [关闭]
从 UWP 中的自定义 ToolTip 和自定义 Flyout 类取消订阅事件