繁体   English   中英

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

[英]iOS 16 changed Bluetooth LE Connection Interval

我们正在开发一种设备,它通过蓝牙 LE 与我们的 iOS/watchOS 应用程序通信,并且必须在较长时间段(小时)内 stream 大量传感器数据。 在 iOS 15.x 下一切正常,但我们发现 iOS 16 beta(和 RC)在协商过程中改变了一些东西:之前我们使用 15 ms 连接间隔,但 iOS 16(和 watchOS 8)最的时间协商 24 毫秒,这对我们的带宽来说太宽了。 长连接间隔会导致数据包丢失 (9-33%),并且在 3 次重试失败后(3x30 秒)我们的硬件会断开连接。

我检查了所有可用的论坛和文档,但没有发现任何变化的迹象。 有没有我们可以研究的新参数来解决这个问题?

编辑:将 30 毫秒更改为 24

我们的产品也有同样的问题。 我们使用了 iOS15 及以下版本接受的 7.5-15 毫秒间隔,尽管它不符合 Apple 设计参数(我们认为我们可以摆脱它,因为它可以工作)。 我们不得不将其更改为 15-30 毫秒才能解决问题,但现在为 Android 传输数据所需的时间增加了一倍。

正如 Rob 在此线程中提到的那样,对于 iOS16.0,Apple 似乎决定严格遵循他们的指导方针,不允许超出这些“设定”要求的任何内容,即使他们过去允许这样做。 然而,苹果似乎又回到了 iOS15 与 iOS16.1 的运行方式。 (虽然没有文档说明这一点 - 只是通过测试知道)

如果您现在需要快速修复,如果您有用户,请让他们更新到 iOS16.1。 您的设备应该像以前在 iOS15 上运行时一样运行。 对于长期解决方案,我会听从 Rob 的建议。

您可能已将 Interval Min 和 Interval Max 都设置为 15 毫秒。 Apple 明确表示这可能会导致设备协商到 30 毫秒(请参阅第41.6 节连接参数):

如果配件要求 15 毫秒的最小间隔和最大间隔,一些设备会将间隔缩放到 30 毫秒以平衡功率和性能限制。

基本上,要求“尽可能快,没有余量”会转化为“是的,每个人都要求这个,适度快怎么样?”

但是,如果包含 HID,您可能会要求更快的 CI:

如果蓝牙低功耗 HID 是配件的连接服务之一,则设备可以接受低至 11.25 毫秒的连接间隔。

虽然我相信 iOS 16 所做的完全符合 Apple 的规范(他们总是说 15 毫秒可以协商为 30 毫秒),但您仍然应该打开反馈+DTS 来讨论对您的产品和用例的影响。 有时这些事情是偶然的,有时它们是回滚的实验。

暂无
暂无

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

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