MicrosoftDocs / windows-dev-docs

Conceptual and overview content for developing Windows apps
Creative Commons Attribution 4.0 International
697 stars 1.21k forks source link

DeviceWatcher does not expose BTLE service UUIDs in its DeviceInformation.Properties() : C++/winRT #1622

Closed brianreinhold closed 5 years ago

brianreinhold commented 5 years ago

Given that one cannot connect to a device using the data from the AdvertisementWatcher, one turns to the DeviceWatcher. However, there is no way to intelligently filter the responses to work with all devices that support standard profiles. When creating the watcher, one can only specify a single UUID in the aqsfilter, so one cannot filter to handle all BTLE devices following the health standard profiles. It is also not possible to filter the response (discovered DeviceInformation) if one sets the aqsfilter to all BTLE devices as the properties are NULL.

Microsoft was clearly not thinking about standards in the design of their BTLE APIs. Profile service UUIDs are the same for all manufactures that make standard thermometers or heart rates monitors or BP monitors. Device names and BT addresses require out-of-band knowledge.


Document Details

Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

jevansaks commented 5 years ago

Let's consolidate all the discussion into https://github.com/Microsoft/Windows-universal-samples/issues/1089 and re-open these issues when that concludes.

FrankGorgenyi commented 5 years ago

Hi Jevan,

I work on the Bluetooth team for the Windows Core OS. We own the APIs under Windows.Devices.Bluetooth. and I helped with the design for Windows.Devices.Enumeration. long ago so I am sure we can help.

We are dealing with some other escalations right now and we're a small team. I'll get to you later tonight or tomorrow.

Thanks, Fg