Программирование Bluetooth с помощью Windows Sockets — Устройство в радиусе действия

Я пытаюсь использовать Windows Sockets, чтобы обнаружить устройство BT в радиусе действия. Я пользуюсь этим MSDN статья для этого.

Код работает, и я получаю информацию об устройствах по вызову WSALookupServiceNext (…).

Информация об устройстве предоставляется WSAQUERYSETW структура.

Как узнать, находится ли устройство в радиусе действия на основе данных из структуры WSAQUERYSETW?

Я могу проверить, если WSAQUERYSETW :: dwOutputFlags имеет один из следующих флагов:

BTHNS_RESULT_DEVICE_CONNECTED
BTHNS_RESULT_DEVICE_AUTHENTICATED
BTHNS_RESULT_DEVICE_REMEMBERED

И если устройство ПОДКЛЮЧЕНО, таким образом, оно определенно в радиусе действия, но как насчет других состояний?

Что именно ЗАПОМНЕНО состояние?

1

Решение

Эти флаги не являются взаимоисключающими — устройства могут быть все три или ни одного.

  • ЗАПОМНЕНО означает, что он указан в списке «устройства Bluetooth» на панели управления. Это может или не может быть в диапазоне. Единственная гарантия, которую мы имеем с устройствами Remembered, заключается в том, что в прошлом они находились на некотором расстоянии.

  • AUTHENTICATED означает, что оно было сопряжено с устройством, т. Е. Если необходим контакт, он уже был предоставлен. Устройство может быть запомнено, но не аутентифицировано; однако любое устройство, которое было аутентифицировано (т. е. Windows сопряжено с ним), будет запомнено

Если устройство ранее было сопряжено, а затем удалено вручную, это не аутентифицирует его, и оно не будет ни запомнено, ни аутентифицировано.

0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector