2013-07-02 15 views
5

Pracuję nad projektem Bluetooth Android, aby wysyłać i odbierać dane z niestandardowego sprzętu. Użyłem próbki czatu Bluetooth w SDK jako podstawę.Jaki jest maksymalny rozmiar pakietu do wysyłania danych przez Bluetooth w systemie Android?

Wysyłam dane z jednego urządzenia do drugiego (LG Nexus 4). Wszystko jest ok, dopóki nie osiągnę długości 1004 bajtów (są to dane audio). W tym momencie dzieli go na 2 wiadomości po 990 i 14 bajtów w większości przypadków. ale jest dziwne, czasami wysyła 1004 bez dzielenia (około 4 razy na 100).

Wysyłam ten pakiet 1004 bajtów, w których jest 4 bajty to mój nagłówek, a reszta 1000 bajtów to rzeczywiste dane, które chcę użyć zgodnie z rozkazem w nagłówku, teraz jeśli pakiety są rozdzielane zgodnie z wyżej wymienionym sposób, w jaki nie mogę znieść przepływu.

Proszę dać mi znać, dlaczego pakiety dzielą się w taki sposób i jak mogę przerwać to dzielenie lub, jeśli nie mogę tego zrobić, proszę sugerować mi alternatywny sposób na zrobienie tego.

Dzięki.

+0

Maksymalna długość pakietu bluetooth to 1024 bajty. Myślę, że ten link jest dla ciebie przydatny. http://stackoverflow.com/questions/9748219/bluetooth-file-transfer-android –

Odpowiedz

1

Dane wysyłane przez gniazdo Bluetooth są pobierane w postaci strumienia. Tutaj warstwa transportowa jest dzielona na pakiety, gdzie rozmiar pakietu wynosi maksymalnie 1KB (1000 bajtów). Możesz więc opracować mechanizm, w którym możesz wysyłać informacje o długości wiadomości w nagłówku, a po stronie odbiorczej będziesz musiał wykonywać kolejne wywołania read(); każde zwracane dane dla jednego pakietu.

Powiązane problemy