iOS BLE 中心如何在通知模式下从外设接收超过 182 个字节?

How can an iOS BLE central receive more than 182 bytes from a peripheral in notify mode?

我有一个自定义的 BLE 外围设备,可以将通知数据包发送到中央。设备一次发送 234 字节的数据包,期望中央注册设备上的特征更新通知。外围设备正在向中央设备发送 234 字节的数据,但 iOS 设备在 didUpdateValueForCharacteristic 函数中仅接收到 182 字节的数据。

在 android 中,中央软件可以正常工作,phone(中央)在单个通知事件中接收到 234 个字节。 - 这在 Android 中工作得很好,但在 iOS 设备上有问题。

iOS 设备是否需要任何配置才能从 BLE 外围设备接收全长数据?如有任何帮助,我们将不胜感激!

iOS 设备最大 ATT_MTU 为 185 字节,这意味着每个数据包最多可以发送 182 个数据字节(其他 3 个字节是 L2CAP 的开销)。一开始 iOS 设备只支持 158 字节,后来增加到 185。

ATT_MTU 的工作方式是在连接时进行协商,中央发送其最大值 ATT_MTU(即对于 iPhone 为 185),外围设备回复其自己的 ATT_MTU(即在您的情况下为 237),然后连接的 ATT_MTU 将是两者之间的最小值(即 185)。因此,为了回答您的问题,没有办法配置您的 iOS 设备以发送完整长度的数据,因为这是 Apple 不允许访问的低级配置。

查看以下链接以获取更多信息:-