Ich habe ein Problem beim Senden großer Dateien über Bluetooth-Sockets. Kleinere Dateien werden korrekt übertragen. Ich glaube, bis zu 161280 Bytes werden korrekt übertragen.
BEARBEITEN: Ich habe noch mehr Tests durchgeführt und die Ursache eingegrenzt. Es scheint, dass
%Vor% im sendenden Codeteil schreibt NICHT mehr als 161280 Bytes. Ich habe dieses Verhalten gesehen, indem ich die Socket-Verbindung nicht geschlossen habe, wodurch die read
im empfangenden Teil auf 161280 Bytes "blockiert" hat. Was stimmt hier mit dem Bluetooth-Ausgangsstrom nicht? Was mache ich falsch?
EDIT 2: Dadurch wird es durch.
%Vor%Sendecode:
%Vor%Empfangscode:
%Vor%Logcat:
%Vor%Ich verwende Motorola Milestone. Android 2.1
Ich konnte dieses Problem lösen, indem ich kleine Datenblöcke an den Bluetooth-Outstream sendete. Es stellte sich heraus, dass 8 * 1024 eine gute Puffergröße war, was dazu beitrug, Daten nahtlos über den Stream zu senden und eine Beschädigung von Daten auf der Empfängerseite zu verhindern.
%Vor%Tags und Links android bluetooth file-transfer