2013-07-02 5 views
5

Ich arbeite an einem Android-Bluetooth-Projekt zum Senden und Empfangen von Daten von einer benutzerdefinierten Hardware. Ich habe Bluetooth Chat Sample im SDK als Basis verwendet.Was ist die maximale Paketgröße, um Daten über Bluetooth in Android zu senden?

Ich sende Daten von einem Gerät zu einem anderen (LG Nexus 4). Alles ist in Ordnung, bis ich eine Länge von 1004 Bytes erreiche (es sind die Audiodaten). An diesem Punkt teilt es in den meisten Fällen in 2 Nachrichten von 990 und 14 Bytes auf. aber ist manchmal komisch das Senden 1004 ohne zu splitten (ca. 4 mal in 100).

Ich sende dieses Paket von 1004 Bytes, in dem es 4 Bytes gibt ist meine Kopfzeile und Rest von 1000 Bytes ist tatsächliche Daten, die ich wie pro Befehl im Header verwenden möchten, jetzt wenn Pakete wie oben erwähnt teilen So kann ich den Fluss nicht bewältigen.

Also, bitte lassen Sie mich wissen, warum Pakete auf diese Weise teilen und wie kann ich diese Spaltung zu stoppen oder, wenn ich das nicht tun kann, dann bitte schlagen Sie mir eine alternative Möglichkeit, dies zu tun.

Danke.

+0

maximale Bluetooth Paketlänge ist 1024 Byte. Ich denke, dass dieser Link für Sie nützlich ist. http://stackoverflow.com/questions/9748219/bluetooth-file-transfer-android –

Antwort

1

Daten, die über den Bluetooth-Socket gesendet werden, werden als Stream abstrahiert. Hier ist die Transportschicht in Pakete aufgeteilt, wobei das Paket eine maximale Größe von fast 1 KB (1000 Bytes) hat. Sie können also einen Mechanismus entwickeln, mit dem Sie die Nachrichtenlängeninformationen in der Kopfzeile senden können, und dann auf der Empfängerseite müssen Sie nachfolgende read() Aufrufe vornehmen; jedes gibt Daten für ein Paket zurück.

Verwandte Themen