Windows UWP BLE DeviceInformation.CreateWatcher引发属性键语法错误

时间:2018-12-07 15:09:06

标签: c# windows uwp bluetooth-lowenergy

我们有一个使用某些UWP蓝牙LE UWP功能的桌面Windows应用程序。我们启动观察者:

string BTLEDeviceWatcherAQSString = "(System.Devices.Aep.ProtocolId:=\"{bb7bb05e-5972-42b5-94fc-76eaa7084d49}\")";
string[] props = { "System.Devices.Aep.DeviceAddress", "System.Devices.Aep.IsConnected", "System.Devices.Aep.Bluetooth.Le.IsConnectable"};
watcher = DeviceInformation.CreateWatcher(BTLEDeviceWatcherAQSString, props, DeviceInformationKind.AssociationEndpoint);

它在大多数计算机上运行都很好,只是很少有匿名错误日志:

System.Exception: Element not found. Property key syntax error. A property key must either be specified as a canonical property name (preferred) or be of the form {fmtid} pid.
at Windows.Devices.Enumeration.DeviceInformation.CreateWatcher(String aqsFilter, IEnumerable`1 additionalProperties, DeviceInformationKind kind) 

我们在Windows 10.0.15063(即1703)或更高版本上运行此代码,因此所有属性都应由文档提供。

什么可能导致此错误?一些硬件配置或Windows 10设置?

1 个答案:

答案 0 :(得分:0)

我已经在Windows WPF桌面应用程序中看到此异常。原因是我忽略了检测Windows 10的修订大于1703 AKA创建者版本的问题。因此,任何在Windows 10早期版本上运行该应用程序的人都会看到此错误。不幸的是,该错误太模糊了,不支持的错误会更好。