unity3d Hololens 2 / MRTK / Unity /以编程方式请求权限

lkaoscv7  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(188)

是否可以检查应用程序是否具有权限,以及是否在Hololens 2上以编程方式请求权限?
在清单中权限已经声明,有时如果你错过了权限弹出窗口或错误地点击了NO,应用程序不会再要求权限。
Unity 2020.3.13f1
MRTK 2.7.3

-更新-

我在这里要求这个功能:
https://github.com/microsoft/MixedRealityToolkit-Unity/issues/10675
请支持请求!

gijlo24d

gijlo24d1#

要检查HoloLens 2上的麦克风和相机权限,我们可以利用WinRT API MediaCapture。如果应用程序没有麦克风和相机权限,当调用InitializeAsync方法时,它将抛出UnauthorizedAccessException
如果我们得到了这个异常,就没有办法以编程方式重新请求权限。我们应该让用户在设置中使用ms-settings:appsfeatures-app URI再次授予我们所需的权限,这可以打开我们应用的高级设置页面。

#if ENABLE_WINMD_SUPPORT
using (MediaCapture mediaCapture = new MediaCapture())
    try
    {
        await mediaCapture.InitializeAsync();       
    }
    catch (UnauthorizedAccessException)
    {
        await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings:appsfeatures-app"));
    }
#endif

另一种检查权限的方法是使用AppCapability ClassCheckAccess方法将返回访问状态。如果状态为DeniedByUser,我们仍然需要使用ms-settings:appsfeatures-app URI打开应用程序的高级设置页面,并让用户授予我们所需的权限。

相关问题