0

最近我们开始扩展我们的应用程序以支持 Surface Hub(55 英寸和 84 英寸)。在许多地方,我们为 Hub 设计了完全不同的 UI 集,因此需要识别设备是否是 Surface Hub,以便我们可以显示特定的 UI。

我探索了各种设备识别/输入 API,但不幸的是,它们都没有为识别设备提供任何线索。

我不完全记得了,但我想我在某处读到过,现在 UWP SDK 不允许开发人员识别特定的设备类型,因为 UWP 应用程序预计可以在各种运行 Win 10 的设备上运行 - 可能有人可以证实这一点. 然而,由于集线器的分辨率远高于普通的桌面/平板设备,我确信可以使用 VisualState 触发器来操作各种 UI。

如果我能够在我的应用程序开始运行之前以某种方式识别设备是否是 Surface Hub,那就太好了,更像是识别当前设备上是否存在触摸功能。

希望有人能够在这里提供合理的解决方案来帮助我!

4

2 回答 2

0

本文多次建议 Surface Hub 拥有自己的设备系列,但本文说只有面向通用设备系列的应用才能在 Surface Hub 上运行,并没有提及 Surface Hub 设备系列或某种数字白板设备系列该设备将宣传自己是其中的一部分。

但是,有一个名为的类Windows.System.Profile.Shared​Mode​Settings包含一个仅在启用了特定策略的 PC或 Surface HubIsEnabled上返回 true 的属性。将它与 VisualState 触发器结合使用,甚至可能是使用功能检测确定设备是否为 Surface Hub 的最接近方法。Windows.Devices.Input.TouchCapabilities.TouchPresent

于 2017-05-12T03:49:07.593 回答
0
if(AnalyticsInfo.VersionInfo.DeviceFamily == "Windows.Team")
{
    // surface hub
}

有一些方法可以为每个设备系列定制 UI。是的,一种是设备触发。或者,您可以为 Surface 集线器提供完全独立的视图 (XAML)。

例如,您可以在 app.xaml.cs 中选择主视图:

rootFrame = new Frame();
if(AnalyticsInfo.VersionInfo.DeviceFamily == "Windows.Team")
{
    // surface hub
    rootFrame.Navigate(typeof(MainPageForSurfaceHub), e.Arguments)
}
else
{
    rootFrame.Navigate(typeof(MainPage), e.Arguments)
}

以下介绍将对您有所帮助。

Surface Hub:为 Surface Hub 和大屏幕构建 Windows 通用应用

于 2017-05-12T05:55:10.077 回答