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

时间:2015-05-27 10:00:15

标签: c# win-universal-app windows-10-iot-core

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

我尝试了以下代码:

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

在我的笔记本上都不会是真的,但在我的Rasbperry Pi上也不会是真的。有人有想法或知道如何做对吗?

3 个答案:

答案 0 :(得分:4)

我希望那个属性

Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily

是您正在寻找的 - 它应该在您的情况下返回"Windows.IoT"之类的内容,因为当我在桌面上的通用应用程序中检查它时,它是"Windows.Desktop"并且在Windows 10的手机上移动(预览)它是,"Windows.Mobile"

答案 1 :(得分:1)

使用ApiInformation.IsTypePresent,您正在寻找不适用于命名空间的类型。 " Windows.Devices.Gpio"是命名空间。尝试使用" Windows.Devices.Gpio.GpioController"代替。

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

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

答案 2 :(得分:0)

我正在努力解决同样的问题,请参阅: How to detect running on a real device?

不幸的是,IsTypePresent类的GpioController也会在桌面上返回true