StartSuspendAsync()[最小化 HoloLens 应用程序] 不执行任何操作
StartSuspendAsync()[minimizing the HoloLens App] doesn't do anything
我的主要目标是从 holoLens 应用打开浏览器 link。但是使用以下代码直接从 HoloLens 应用程序打开 link:
Application.Open(url)
这确实打开了 link 但它实际上 closes/resets HoloLens 应用程序,再次打开它只是从头开始重置它,就像它根本没有打开一样。
我做了一些实验:手动最小化 HoloLens 应用程序。 -> 打开全息浏览器,-> 浏览 -> 然后返回到 HoloLens 应用程序。
并且此方法有效,HoloLens 应用程序没有重置或关闭。
所以我正在研究如何以编程方式最小化应用程序,然后打开浏览器。
我发现了这个:
还通过使用一些参考资料按照说明进行操作:
- https://docs.microsoft.com/en-us/windows/uwp/packaging/app-capability-declarations
- https://docs.microsoft.com/en-us/windows/uwp/packaging/app-capability-declarations#device-capabilities
- https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/how-to-specify-device-capabilities-in-a-package-manifest
参考资料基本上是说,为了最小化应用程序。您将需要使用此代码:
#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 应用程序的脚本后,我 运行 仍然没有任何反应..
我错过了什么?
如果系统没有资源让您的应用程序保留在内存中,它会终止暂停的应用程序以释放资源,即使您手动最小化该应用程序,更多信息请参阅:App Terminate
打开一些 Web 链接并避免系统暂停您的应用程序的最佳方法是直接在您的 unity 应用程序中启动平面浏览器 window。请参考这段代码:LaunchUri.cs. And have a look at launch browser example which shows the behavior in the HandInteractionExamples场景
我的主要目标是从 holoLens 应用打开浏览器 link。但是使用以下代码直接从 HoloLens 应用程序打开 link:
Application.Open(url)
这确实打开了 link 但它实际上 closes/resets HoloLens 应用程序,再次打开它只是从头开始重置它,就像它根本没有打开一样。
我做了一些实验:手动最小化 HoloLens 应用程序。 -> 打开全息浏览器,-> 浏览 -> 然后返回到 HoloLens 应用程序。 并且此方法有效,HoloLens 应用程序没有重置或关闭。
所以我正在研究如何以编程方式最小化应用程序,然后打开浏览器。 我发现了这个:
还通过使用一些参考资料按照说明进行操作:
- https://docs.microsoft.com/en-us/windows/uwp/packaging/app-capability-declarations
- https://docs.microsoft.com/en-us/windows/uwp/packaging/app-capability-declarations#device-capabilities
- https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/how-to-specify-device-capabilities-in-a-package-manifest
参考资料基本上是说,为了最小化应用程序。您将需要使用此代码:
#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 应用程序的脚本后,我 运行 仍然没有任何反应..
我错过了什么?
如果系统没有资源让您的应用程序保留在内存中,它会终止暂停的应用程序以释放资源,即使您手动最小化该应用程序,更多信息请参阅:App Terminate
打开一些 Web 链接并避免系统暂停您的应用程序的最佳方法是直接在您的 unity 应用程序中启动平面浏览器 window。请参考这段代码:LaunchUri.cs. And have a look at launch browser example which shows the behavior in the HandInteractionExamples场景