【问题标题】:What is the Maximum packet size to send data over bluetooth in Android?在 Android 中通过蓝牙发送数据的最大数据包大小是多少?
【发布时间】:2017-08-07 22:14:14
【问题描述】:

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

我正在将数据从一台设备发送到另一台设备(LG Nexus 4)。一切正常,直到我达到 1004 字节的长度(它是音频数据)。在大多数情况下,它会将其拆分为 2 条 990 字节和 14 字节的消息。但奇怪的是有时它发送 1004 而不拆分(大约 100 次中的 4 次)。

我正在发送这个 1004 字节的数据包,其中 4 个字节是我的标头,其余 1000 字节是我想按照标头中的命令使用的实际数据,现在如果数据包按照上述方式拆分比我无法处理的流程。

所以,请让我知道为什么数据包会以这种方式拆分,我该如何阻止这种拆分,或者,如果我无法做到这一点,请告诉我任何其他方式来做到这一点。

谢谢。

【问题讨论】:

标签: android streaming android-bluetooth


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    • 2021-08-16
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    相关资源
    最近更新 更多