繁体   English   中英

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 function 中仅接收 182 字节的数据。

在 android 中,中央软件正常工作,电话(中央)在单个通知事件中接收 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 不允许访问的低级配置。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM