iOS 16更改了蓝牙LE连接间隔

wvmv3b1j  于 2022-12-15  发布在  iOS
关注(0)|答案(2)|浏览(349)

我们正在开发一款通过蓝牙LE与iOS/watchOS应用程序通信的设备,该设备必须在较长时间(数小时)内传输大量传感器数据。在iOS 15.x下一切正常,但我们发现iOS 16测试版(和RC)在谈判过程中发生了一些变化:之前我们使用的是15毫秒的连接间隔,但iOS 16(和watchOS 8)大多数时候协商的是24毫秒,这对我们的带宽来说太宽了。长连接间隔会导致数据包丢失(9-33%),在3次重试失败(3x 30秒)后,我们的硬件会断开连接。
我已经检查了所有可用的论坛和文档,但没有发现任何更改的迹象。是否有任何新的参数可以解决此问题?
编辑:将30 ms变更为24 ms

oknrviil

oknrviil1#

您可能将最小间隔和最大间隔都设置为15ms,Apple明确表示这可能会导致设备协商为30ms(参见41.6 Connection Parameters部分):
如果附件请求的最小间隔和最大间隔均为15 ms,则某些设备会将间隔调整为30 ms,以平衡功率和性能限制。
基本上,要求“尽可能快,没有利润”转化为“是的,每个人都要求,适度快怎么样?”
但是,如果包含HID,您可能会要求更快的配置项:
如果蓝牙低功耗HID是附件的连接服务之一,则设备可以接受低至11.25ms的连接间隔。
虽然我相信iOS 16的表现完全符合苹果的规格(他们总是说15毫秒可以协商到30毫秒),但你还是应该打开一个反馈+DTS来讨论对你的产品和用例的影响。有时候这些事情是偶然的,有时候它们是实验,会被取消。

z0qdvdin

z0qdvdin2#

我们的产品也遇到了同样的问题。我们使用的是iOS 15及以下版本所接受的7.5- 15 ms间隔,尽管它不符合苹果的设计参数(我们认为我们可以摆脱它,因为它是工作的)。我们不得不将它改为15- 30 ms来解决这个问题,尽管现在安卓系统传输数据所需的时间增加了一倍。
正如Rob在这篇文章中提到的,对于iOS16.0,苹果似乎决定严格遵循他们的指导方针,不允许任何超出“设定”要求的东西,即使他们过去允许。然而,苹果似乎已经恢复到iOS 15在iOS16.1上的运行方式。(尽管没有文档说明这一点--只是通过测试知道)
如果你现在需要一个快速解决方案,如果你有用户,让他们更新到iOS16.1。你的设备应该像以前在iOS 15上运行时一样运行。作为一个长期的解决方案,我会遵循Rob的建议。

相关问题