在Android中通过蓝牙发送数据的最大数据包大小是多少?

Jig*_*iya 5 streaming android android-bluetooth

我正在开发Android蓝牙项目,以便从定制硬件发送和接收数据.我在SDK中使用蓝牙聊天示例作为基础.

我正在将数据从一台设备发送到另一台设备(LG Nexus 4).一切都好,直到我达到1004字节的长度(这是音频数据).此时,在大多数情况下,它将其分为2个990和14字节的消息.但奇怪的是它有时发送1004没有分裂(大约4次100).

我送的1004个字节,其中有该包4个字节是我的头和1000个字节剩下的就是我想在头按指令用实际的数据,现在如果数据包分割按照上述方式比我做不到处理流程.

所以,请让我知道为什么包以这样的方式分割和我怎样才能制止这种分裂,或者,如果我不能做到这一点,不是请给我建议任何替代的方式来做到这一点.

谢谢.

Bil*_*med 3

通过蓝牙套接字发送的数据被抽象为流。这里传输层被分成数据包,其中数据包的最大大小几乎为 1KB(1000 字节)。因此,您可以设计一种机制,在其中可以在标头中发送消息长度信息,然后在接收端您将不得不进行后续read()调用;每个返回一个数据包的数据。