IOS : 背景蓝牙低功耗 (BLE) 扫描规则

sde*_*ont 7 ios bluetooth-lowenergy

在网上花了几个小时后,我找不到任何关于 IOS 使用的后台 BLE 扫描规则的文档。

由于无法在 IOS 上设置扫描窗口,因此我正在寻找 IOS 在后台扫描时 Apple 定义的规则。

语境

我正在开发一种可穿戴外设,当它无法与手机连接时,有时会断开连接。目标是在外围设备离手机足够近时快速(少于 5 秒)重新连接。外围设备有电池限制,所以我不能永远每 20 毫秒做一次广告,所以我正在寻找一种巧妙的方法将我的外围设备重新连接到手机。

如果我知道后台扫描模式是如何工作的,我就可以定义一个智能广告间隔以节省电池电量。

用例

如果我的外设每 1285 毫秒进行一次广告,那么我的 IOS 应用程序在后台模式下 10 分钟需要多长时间才能发现?

jca*_*ron 5

不确定你的问题是什么。

我想您已经阅读了 Apple 的“Apple 产品蓝牙配件设计指南”?

https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf

在其中,他们指出:

3.5 广告间隔

应该仔细考虑附件的广告间隔,因为它会影响发现和连接性能的时间。对于电池供电的配件,还应考虑其电池资源。

要被 Apple 产品发现,配件应首先使用建议的 20 毫秒广告间隔至少 30 秒。如果在最初的 30 秒内没有被发现,Apple 建议使用以下较长时间间隔之一来增加 Apple 产品发现的机会:

  • 152.5 毫秒
  • 211.25 毫秒
  • 318.75 毫秒
  • 417.5 毫秒
  • 546.25 毫秒
  • 760 毫秒
  • 852.5 毫秒
  • 1022.5 毫秒
  • 1285 毫秒

注意:更长的广告间隔通常会导致更长的发现和连接时间。

发现 BLE 设备后,iOS 将通知正在寻找它的应用程序(基于广告服务 UUID),然后应用程序将能够连接到它。

Apple 建议 iBeacons 间隔为 100 毫秒。

这个(很老,从 2012 年开始)讨论指出:

手机待机时的中位发现时间约为广告间隔的 60 倍。手机待机时的95%发现时间约为广告间隔的300倍

这个(稍晚一些,但从 2013 年 12 月开始)答案指出:

虽然在前台扫描可能会立即发现旁边有广告的设备,但在后台发现可能需要长达 60 倍的时间。