2011-08-05 84 views
0

我想用android和藍牙編碼應用程序。作爲一個總結,作爲我認爲在互聯網上有據可查的文件,藍牙2.1(我無法找到3.0和4.0的信息)僅支持同一微微網中的7個有源設備,並且在停放模式下最多可支持255個(未連接並通過查詢掃描,購買同步偵聽廣播數據包)。如果繼續限制7個活動成員,我無法找到3.0和4.0規範的信息。安卓+微微網+停放設備

有很多問題的答案不容易找到有關藍牙。我希望有人能幫助我解決下一個問題。

如何通過RFCOMM與Android中的駐留模式通信?如果只有7個設備可以通過開放式套接字連接(分頁&已連接)處於活動狀態,那麼如何讓所有設備能夠通過主設備彼此進行通信?

爲了讓事情有點清楚,我們可以想像,我試圖在一個微微網,其中主不久的所有用戶都可以進入「聊天」創建的所有設備之間的通信應用。但爲了讓所有人聊天,您需要通過RFCOMM「連接」所有設備(連接和停放),以便他們可以使用套接字交換信息。

但是如果只有7個可以通信並且可以打開一個活動的套接字,那麼該策略如何?我怎樣才能讓他們之間互相溝通,所以所有的設備都可以收到相同的信息來聊天?

非常感謝你提前。

回答

0

主動和停放設備數量保持與藍牙3.0也一樣,藍牙4.0是一個有點不同,因爲它有2種模式 - 藍牙4.0增加了一個新的無線電機制,藍牙所謂藍牙低能量,所以有設備是可以做雙模式,即經典的藍牙(2.1,3.0功能)和新的低能量功能,有些設備只能使用低能量功能,有些則是雙模式,可以同時使用低能耗模式和傳統藍牙。

經典藍牙功能保持在4.0大多也一樣,低能完全是一種新的選擇,低能源選項(單選)不能與經典的選項溝通。 (除非是具有經典和低能量選項的雙模式)

現在上述理論很重要,因爲在低能量情況下沒有有源器件的限制,理論上你有數十萬個器件(假設他們談論以不重疊的間隔)連接。 (不像經典的限制是7),在低能量方面,沒有像Park這樣的特殊模式。低能量通常用於傳感器設備,在某些時間間隔喚醒連接發送一些數據並消失。它們通常是低帶寬和短時間的通信。這使得低能量選項具有吸引力,無線傳感器可以使用鈕釦電池多年。

現在回答其餘問題: - 您無法直接與駐留設備進行通信,有一種廣播機制可將(單向)數據(不可靠)發送到駐留設備,Android不具備任何API支持它。此外,我會阻止使用Park,因爲它是一個複雜的過程,並且易於與不同供應商的無線電的互操作性問題,另外Park模式在最新版本的Bluetooth中已棄用。

另一種方法是未公園設備的一個在另一個之後 - 使其活性 - 完成在主動模式下的通信,然後停回來。 這可能會使您的羣聊應用程序處理變得複雜。

希望它有幫助。

+0

非常感謝您的回覆。爲了說清楚,你說的是與非活動設備通信的唯一選擇是斷開與已經連接的一個設備的連接,所以現在你可以將舊的停放設備變成活動狀態,對嗎?一個問題。如果我正確理解藍牙協議,主設備最多可以處理255個停放設備,但是如果我希望所有設備都處於活動狀態,我唯一的想法就是讓它們全部成爲散射網絡的一部分。你怎麼看待這件事?換句話說,代替將8號和以上設備置於停放模式, – 2011-08-05 21:00:07

+0

使設備(255-8)的其餘部分創建更多主設備和從設備,並且形成散射網而不是微微網。 您對此有何看法?我不知道這是否可以完成,因爲我不明白藍牙堆棧協議如何管理與微微網散射網的創建,但你是在這裏的stackoverflow藍牙的主人,所以我相信你可以給我一個答案:-)。 – 2011-08-05 21:00:07

+0

藍牙可以處理超過255個停放的設備,這個數字可以在理論上任意大。它只能有7個有源設備,您可以停放有源設備,然後取消停放設備等,唯一的限制是,此時只有7個設備可以啓用。散佈網更復雜,取決於您的應用程序可能有用。設備大多隻支持有限的散射網,所以我認爲你可以在散射網模式下處理多達9或10個有源設備。 –