2013-09-30 2 views
1

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

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

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

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

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

BTHNS_RESULT_DEVICE_CONNECTED 
BTHNS_RESULT_DEVICE_AUTHENTICATED 
BTHNS_RESULT_DEVICE_REMEMBERED 

И если устройство подключено, таким образом, это, безусловно, в диапазоне, но как насчет других государств?

В чем именно ПОМНИТЬ состояние?

ответ

0

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

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

  • АВТОРИЗАЦИЯ означает, что оно было сопряжено с устройством - то есть, если необходим штырь, он уже был поставлен. Устройство может быть запомнено, но не аутентифицировано; Однако любое устройство, которое аутентифицировано (т.е. окно имеет в пару с ней) будет помнить

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

+0

Спасибо! Последующий вопрос, для обнаружения устройств в диапазоне, должен ли я установить флаг REMEMBERED в значение ИСТИНА? Или я могу установить его на ЛОЖЬ? С одной стороны, я не хочу уменьшать набор результатов, с другой стороны, я не хочу, чтобы в моем наборе результатов не было устройств. – Pupsik

+0

Хороший вопрос - я не думаю, что вы можете, но если есть способ получить все устройства на дальнем расстоянии, не включая в себя устройства с запоминанием, но не входящие в диапазон, или исключая устройства с запоминанием, но в диапазоне, я бы любить знать. –

Смежные вопросы