This function simply requests all services from windows, and then filters the list, instead of requesting specific services from windows. For some devices with many services, this is slower than necessary.
bool BLEManager::DiscoverServices(const std::string& uuid,
const std::vector<winrt::guid>& serviceUUIDs)
{
CHECK_DEVICE();
IFDEVICE(device, uuid)
{
auto completed = bind2(this, &BLEManager::OnServicesDiscovered, uuid, serviceUUIDs);
device.GetGattServicesAsync(BluetoothCacheMode::Uncached).Completed(completed);
return true;
}
}