Как правильно вызвать GetGattServicesForUuidAsync?

Мне трудно получить сервис GATT с моего устройства. Я использую Visual Studio 2017, создаю консольное приложение C ++ / WinRT. Пока у меня есть этот код:

struct Console
{
/* Create a watcher */
BluetoothLEAdvertisementWatcher watcher = BluetoothLEAdvertisementWatcher();

void Initialize()
{
watcher.ScanningMode(BluetoothLEScanningMode::Active);
watcher.Received({ this, &Console::OnAdvertisementReceived });
watcher.Start();
}

void OnAdvertisementReceived(BluetoothLEAdvertisementWatcher const& _watcher, BluetoothLEAdvertisementReceivedEventArgs const& args)
{
hstring bleDeviceName = L"xxx";
BluetoothLEAdvertisement adv = args.Advertisement();

if (adv.LocalName() == bleDeviceName) {
_watcher.Stop();

winrt::Windows::Foundation::IAsyncOperation device = BluetoothLEDevice::FromBluetoothAddressAsync(args.BluetoothAddress());

if (device != NULL) {
winrt::Windows::Foundation::IAsyncOperation servicesIncluded = BluetoothLEDevice::GetGattServicesForUuidAsync(MyService_GUID);
}
}

else cout << "No device found " << endl;
}
};

int main()
{
Console test;
test.Initialize();

cin.get();
return 0;
}

Я не могу заставить эту функцию работать:

winrt::Windows::Foundation::IAsyncOperation servicesIncluded = BluetoothLEDevice::GetGattServicesForUuidAsync(MyService_GUID);

Вот Прототип. Это не статическая функция, и здесь может быть что-то делать. Спасибо за любую помощь.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …