iOS蓝牙BLE读取数据最大大小

Posted

技术标签:

【中文标题】iOS蓝牙BLE读取数据最大大小【英文标题】:iOS Bluetooth BLE read data maximum size 【发布时间】:2017-06-13 08:34:14 【问题描述】:

我有一个在 BLE 设备上读/写的 ios 应用。该设备正在向我发送超过 20 个字节长的数据,我看到它们被修剪了。基于以下线程

Bluetooth LE maximum transmission size

看起来 iOS 正在修剪数据。该线程显示了如何写入更大数据大小的解决方案,但是我们如何read 信息大于 20 字节?

【问题讨论】:

您需要设备发送小于MTU的数据包。 只是在某些情况下,设备如何向您发送超过 20 个字节的数据?是否将它们打包成 20 字节的块?它改变了MTU吗?我会说,在 android + iOS 与 BLE 4.2 和 5.0 兼容之前,任何向手机发送每个数据包 > 20 字节的外围设备都会造成麻烦 - 编辑:忘记了 MTU 链接punchthrough.com/blog/posts/… 【参考方案1】:

对于多年后像我一样看这篇文章的人来说,我们也曾一度遇到过这个问题。对于大于 20 字节的数据,我想分享一些有用的提示。

由于数据大于一个数据包可以处理的数据,您需要将其分多个数据包发送。如果您的数据总是以某种 END 字节结尾,这将有很大帮助。对我们来说,我们的结束字节给出了总字节数组的大小,因此我们可以在读取结束时检查它。 创建一个循环,不断检查数据包并在收到该结束字节时停止(该循环也有超时)。 确保在开始新的读取时清除“缓冲区”。 最好有一个“isBusy”布尔值来跟踪当前是否有另一个函数正在等待从设备读取。这可以防止读取重叠。对我们来说,如果端口当前繁忙,我们等待半秒再试一次。

希望这会有所帮助!

【讨论】:

以上是关于iOS蓝牙BLE读取数据最大大小的主要内容,如果未能解决你的问题,请参考以下文章

ios BLE读取蓝牙地址

ios BLE读取蓝牙地址

iOS 蓝牙与设备配对和取消配对

Android nougat(超过7.0.0)的BLE(蓝牙低功耗)无法读取数据

iOS 上的 BLE 广告和 CBAdvertisementDataLocalNameKey 大小

GATT特性BLE读取速度慢