2013-09-30 73 views
1

我正嘗試使用Windows套接字來發現範圍內的BT設備。我正在使用這個MSDN文章。使用Windows套接字進行藍牙編程 - 範圍內的設備

該代碼的工作原理和我通過致電WSALookupServiceNext(...)獲取設備信息。

設備信息由WSAQUERYSETW結構提供。

如何根據WSAQUERYSETW結構中的數據知道設備是否在範圍內?

我可以檢查是否WSAQUERYSETW :: dwOutputFlags是具有下列標誌之一:

BTHNS_RESULT_DEVICE_CONNECTED 
BTHNS_RESULT_DEVICE_AUTHENTICATED 
BTHNS_RESULT_DEVICE_REMEMBERED 

如果設備連接,因此,它在一定範圍內,但對於其他國家?

REMEMBERED狀態是什麼?

回答

0

這些標記不是相互排斥的 - 設備可能全部是三個或沒有。

  • REMEMBERED表示它被列在控制面板中的'bluetooth devices'下。它可能也可能不在範圍內。我們與Remembered設備的唯一保證是,他們在過去的某個時間點處於某個點。

  • AUTHENTICATED表示它已與設備配對 - 即,如果需要引腳,它已經提供。一個設備可以被記住但沒有被認證;然而已被認證(即窗口具有與它配對的)的任何設備將被記住

如果設備已經被先前配對然後手動移除,這未驗證它,它會被既不記住也不進行認證。

+0

謝謝! 後續問題,爲了發現範圍內的設備,我應該將REMEMBERED標誌設置爲TRUE?或者我可以將它設置爲FALSE?一方面,我不想減少結果集,另一方面,我不希望設備不在我的結果集範圍內。 – Pupsik

+0

好問題 - 我不認爲你可以,但是如果有一種方法可以讓所有的範圍內的設備不包括記憶但不在範圍的設備或排除記憶但範圍內的設備,我會愛知道。 –

相關問題