【问题标题】:StartSuspendAsync()[minimizing the HoloLens App] doesn't do anythingStartSuspendAsync()[最小化 HoloLens 应用程序] 没有做任何事情
【发布时间】:2021-08-31 17:12:49
【问题描述】:

我的主要目标是从 holoLens 应用打开浏览器链接。但是使用以下代码直接从 HoloLens 应用打开链接:

Application.Open(url)

这确实打开了链接,但它实际上关闭/重置了 HoloLens 应用程序,再次打开它只是从一开始就重置它,就像它根本没有打开一样。

我做了一些实验:手动最小化 HoloLens 应用。 -> 打开全息浏览器,-> 浏览 -> 然后返回 HoloLens 应用程序。 而且这种方法有效,HoloLens 应用没有重置或关闭。

所以我正在研究如何以编程方式最小化应用程序,然后打开浏览器。 我发现了这个:

还通过使用一些参考来遵循说明:

参考文献基本上说,为了最小化应用程序。您将需要使用此代码:

#if !UNITY_EDITOR
using System.Threading.Tasks;
using Windows;
using Windows.Storage.Pickers;
using Windows.System;
#endif

#if !UNITY_EDITOR
IList<AppDiagnosticInfo> infos = await AppDiagnosticInfo.RequestInfoForAppAsync();
IList<AppResourceGroupInfo> resourceInfos = infos[0].GetResourceGroups();
await resourceInfos[0].StartSuspendAsync();
#endif

您还需要在构建文件夹的.appxmanifest 文件中声明appDiagnostics

在构建文件夹中有 2 个.appxmanifest

G:\Unity Projects\Build\build\bin\ARM64\Release\AppX

G:\Unity Projects\Build\build\bin\ARM64\Release

为了确定,我同时编辑了.appxmanifest

因此,当我运行带有更改的应用程序并运行脚本时.. 没有任何反应。

他们还说要正确打开全息浏览器,您需要使用这个:

System.Diagnostics.Process.Start(url);

但这也不起作用。在我完成了应该最小化 HoloLens 应用程序的脚本之后,我运行了它,但仍然没有任何反应..

我错过了什么?

【问题讨论】:

  • 通常在 Unity 内部设置功能。我认为它在播放器设置 -> 发布设置中
  • 功能(播放器设置 -> 发布设置 -> 功能选项卡)中没有应用诊断。或者我只是需要一些统一的更新?
  • 原来 appDiagnostics 不是 deviceCapability 而是受限制的能力,所以我遵循了它的过程:&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;Package ... xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" IgnorableNamespaces="... rescap"&gt; ... &lt;Capabilities&gt; &lt;rescap:Capability Name="appDiagnostics"/&gt; &lt;/Capabilities&gt; &lt;/Package&gt; 但仍然无法正常工作

标签: visual-studio unity3d uwp hololens appxmanifest


【解决方案1】:

如果系统没有资源将你的应用保存在内存中,它会终止一个暂停的应用以释放资源,即使你手动最小化应用,更多信息请参阅:App Terminate

打开一些网络链接并避免系统暂停您的应用的最佳方法是直接在您的统一应用内启动一个平面浏览器窗口。请参考此代码:LaunchUri.cs。并查看launch browser example,它显示了HandInteractionExamples 场景中的行为。

【讨论】:

  • 我不敢相信这段代码可以工作。谢谢你,我的伙计。这个脚本实际上做了我想要的。它会在 unity HoloLens 应用程序中打开一个 Web 浏览器。谢谢你。 UnityEngine.WSA.Launcher.LaunchUri(uri, false);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-07
  • 2016-10-02
  • 2013-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多