Windows 10 UAP 确定设备是否为 IoT(例如 Raspberry Pi 2)

Windows 10 UAP determine if device is IoT (e.g. Raspberry Pi 2)

我想知道如何确定该设备是否属于 IoT 系列,在我的例子中是 Raspberry Pi 2,但我不需要知道它是否特别是 Raspberry,只是一个 IoT设备。

我尝试了以下代码:

//if(ApiInformation.IsApiContractPresent("DevicesLowLevelContract ", 1))
if (ApiInformation.IsTypePresent("Windows.Devices.Gpio"))
{
    this.InitializeSensor();
    return;
}

两者在我的笔记本上都不成立,但在我的 Rasbperry Pi 上也不成立。有人有想法或知道如何正确地做吗?

我希望 属性

Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily

是你要找的东西 - 它应该 return 在你的情况下类似于 "Windows.IoT",因为当我在桌面上的通用应用程序中检查它时它是 "Windows.Desktop" 并且在 phone 和 Windows 10 Mobile(预览版)上,嗯,"Windows.Mobile"

在 ApiInformation.IsTypePresent 中,您正在寻找一种不适合命名空间的类型。 "Windows.Devices.Gpio" 是一个命名空间。尝试使用 "Windows.Devices.Gpio.GpioController" 的方法。

我建议在此处使用 typeof 关键字以避免使用字符串。像这样:

ApiInformation.IsTypePresent(typeof(Windows.Devices.Gpio.GpioController).ToString());

我正在为同样的问题而苦苦挣扎,请参阅: How to detect running on a real device?

不幸的是 IsTypePresent GpioController class returns true 在桌面上也是如此。