2013-07-02 77 views
5

我正在開發一個Android藍牙項目來發送和接收來自定製硬件的數據。我使用SDK中的藍牙聊天示例作爲基礎。在Android中通過藍牙發送數據的最大數據包大小是多少?

我正在將數據從一臺設備發送到另一臺設備(LG Nexus 4)。一切都好,直到我達到1004字節的長度(這是音頻數據)。在這一點上,在大多數情況下,它將它分成2個990和14個字節的消息。但有時會發送1004而沒有分裂(100次約4次)。

我正在發送這個1004字節的數據包,其中有4個字節是我的標題,剩下的1000字節是我想要用作標題中每個命令的實際數據,現在如果數據包按照上述方式分裂比我無法處理流量的方式。

所以,請讓我知道爲什麼數據包會以這種方式分裂,我該如何阻止這種分裂,或者如果我不能這樣做,請告訴我任何替代方法來做到這一點。

謝謝。

+0

最大藍牙包長度爲1024字節。我認爲這個鏈接對你有用。 http://stackoverflow.com/questions/9748219/bluetooth-file-transfer-android –

回答

1

通過藍牙套接字發送的數據被抽象爲一個流。這裏傳輸層被分成數據包,數據包的最大大小几乎爲1KB(1000字節)。因此,您可以設計一種機制,在該機制中您可以在標題中發送消息長度信息,然後在接收端,您將不得不進行後續的read()調用;每個返回一個數據包的數據。

相關問題