在网上花了好几个小时后,我找不到任何有关IOS使用的背景BLE扫描规则的文档。
由于无法在IOS上设置扫描窗口,我正在寻找Apple在后台扫描时Apple定义的规则。
上下文
我正在开发一种可穿戴的外围设备,当手机无法触及时,它可能会断开连接。目标是在外围设备足够靠近手机时快速重新连接(小于5秒)。外围设备有电池限制,所以我不能永远每20毫秒做一次广告,所以我正在寻找一种巧妙的方法将外围设备重新连接到手机上。
如果我知道背景扫描模式是如何工作的,我可以定义一个智能广告间隔以节省电池。
用例
如果我的外围设备每1285毫秒做一次广告,我的IOS应用程序在后台模式下发现10分钟需要多长时间?
答案 0 :(得分:4)
不确定您的问题到底是什么。
我想您已经阅读了Apple的“Apple产品蓝牙配件设计指南”?
https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf
在其中,他们说:
3.5广告时段
配件的广告间隔应小心 考虑,因为它影响发现和连接的时间 性能。对于电池供电的配件,其电池资源 也应该考虑。
要由Apple产品发现,配件应首先使用 推荐的广告时间间隔为20毫秒,持续时间至少为30秒。 如果在最初的30秒内未发现,Apple 建议使用以下较长间隔之一来增加 Apple产品发现的机会:
- 152.5 ms
- 211.25 ms
- 318.75 ms
- 417.5 ms
- 546.25 ms
- 760 ms
- 852.5 ms
- 1022.5 ms
- 1285 ms
注意:更长的广告时段通常会导致更长的发现和连接时间。
发现BLE设备后,iOS会通知正在寻找它的应用(基于广告服务UUID),然后就可以连接到它。
Apple推荐iBeacons的间隔为100毫秒。
这(相当陈旧,从2012年开始)discussion表示:
手机待机时的中位发现时间约为60 倍于广告间隔。 95%的发现时间 手机处于待机状态是广告的300倍左右 间隔
这(稍微更新,但从2013年12月开始)answer声明:
虽然在前台扫描可能会立即发现一个 旁边的设备广告,在后台发现可以占用 要长约60倍。
答案 1 :(得分:0)
(平均)广告间隔接近扫描间隔的整数倍时会出现问题,然后发现时间可能会无限增加(即扫描仪将永远看不到广告,因为ADV总是在扫描之外发生窗口)。 Apple的设计指南中的ADV间隔列表可能显示了最佳值,但没有说明如何确定发现时间。真是一团糟! 我什至会更进一步地说:如果智能手机(Apple或任何其他)制造商没有为每种电源模式准确指定扫描参数(时间间隔,窗口和最终的过滤器设置),那么您将迷失并且无法正确估算发现性能。