2013-04-28 128 views
4

到目前爲止,我知道它可能從您的android手機與多個設備進行通信。但我的情況是,我想連接兩個「類似」的設備。在Android中將多個設備連接到藍牙

我的理解是,如果我需要連接2個設備,我需要使用不同的UUID,藍牙聊天應用程序建議硬編碼UUID。

現在的情景是,我正在爲一款遊戲進行編程,其中物理槍將通過藍牙連接到手機(以跟蹤拍攝等)。在這裏,我可以要求槍支供應商對所有槍支的UUID進行硬編碼,並且電話可以一次連接1把槍。

要求是,用戶可能有更多的1槍!有人可以告訴我如何管理這個,如果我硬編碼所有槍的單個UUID然後我不知道如何連接多槍。如果我沒有對槍芯片中的UUID進行硬編碼,我該如何找到UUID連接?

回答

6

UUID不是唯一的設備標識符; UUID是Bluetooth Service Discover Protocol用來識別藍牙設備正在使用的協議的唯一標識符。 Bluetooth.org has a list of common UUIDs

假設你知道或可以控制槍支中的UUID(聽起來你可以),那麼你可以使用set up the phone as the Bluetooth server(使用與槍支相同的UUID)。槍然後connect as the clients使用相同的UUID(我知道槍可能不使用Android,但有一些示例代碼可能會有所幫助)。

當然,您可能需要翻轉客戶端/服務器模型以滿足您的特定需求。您應該能夠根據需要製作儘可能多的這些服務器和客戶端線程(在您的硬件強加的連接設備數量的限制範圍內)。

+0

爲什麼你認爲一個普通的客戶端連接不起作用,我們必須在這種情況下使用'BluetoothServerSocket' – Prateek 2014-06-17 11:08:26

+0

對於藍牙,一臺設備需要成爲一臺服務器,其他設備需要成爲客戶端。我的建議是將手機用作服務器,將槍支用作客戶端。您的具體使用情況可能會有所不同。 – 2014-06-17 12:10:46

+0

我也有類似的用例,但我只想確認是否將手機作爲服務器提供了同時向其他藍牙硬件設備傳輸數據的功能。如果你能提供一個具體的例子,那麼這將是非常有用的。 – Prateek 2014-06-17 12:25:13