【问题标题】:UWP turn off kiosk modeUWP 关闭展台模式
【发布时间】:2023-03-10 20:54:01
【问题描述】:

我有一个已发布到 Windows 应用商店的 UWP 应用程序,该应用程序可以启动到展台模式(分配的访问权限)。 效果很好,但我尝试在应用程序上创建一个按钮来关闭信息亭模式并返回到 Windows 登录屏幕。我尝试了文档中给出的代码(https://msdn.microsoft.com/library/windows/hardware/mt633799%28v=vs.85%29.aspx):

LockApplicationHost lockHost = LockApplicationHost.GetForCurrentView();
if (lockHost != null)
{
    lockHost.RequestUnlock();
}

但我点击了按钮,应用程序只是关闭并重新打开。但是不要退出信息亭模式...我在商店里有一个例外,但它是空的。

有人可以帮我理解这个问题吗?

编辑

这是个例外:

System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.
    at Windows.ApplicationModel.LockScreen.LockApplicationHost.GetForCurrentView()
    at Kiwi.Views.Shell.CloseButton_Tapped(Object sender, RoutedEventArgs e)

【问题讨论】:

  • 我无法在我身边重现您的问题。我认为您可以尝试一个新的空白项目,只需一个按钮即可再次对其进行测试。正如文档所说:“如果 kiosk 应用程序意外结束,分配的访问框架会尝试重新启动它。”,您可以尝试使用 Unlocking event 并退出应用程序,如在示例中。
  • 我尝试了一个空白项目,问题是一样的。但是问题只出现在 x64 平台上,而不是 x86 !当应用程序尝试向 Windows 发送信号时,我认为这可能是 Int32 和 Int64 的通信问题......
  • 这很奇怪。我还用 x64 平台进行了测试,效果很好。你用其他设备测试过吗?他们有同样的问题吗?此外,设置here 可能也有帮助。
  • 我尝试了 5 种不同的设备(4 个 x64 和一个 x86),它只适用于 x86。您是否针对特定平台进行编译?我在按钮的“Tapped”事件中调用方法,对吗?
  • 我已经找到解决方案,我会发布答案。非常感谢您的帮助!

标签: c# uwp windows-10 kiosk


【解决方案1】:

终于找到了问题所在,我简单的在manifest中添加了这两个Extension:

<uap:Extension Category="windows.lockScreenCall" />
<uap:Extension Category="windows.aboveLockScreen" />

现在效果很好!

【讨论】:

    猜你喜欢
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多