集成iBeacon和coreBluetooth外设

时间:2015-12-11 13:42:01

标签: ios iphone swift ibeacon cbperipheral

我想知道是否可以通过coreBluetooth通过充当外设的设备和iBeacons的范围来宣传服务,同时在后台完成这两项服务? 本质上是目的是为信标设置范围,然后如果信标在范围内.Near或.Immediate范围更新设备通告的服务的特征。 我可以愉快地完成测距任务,虽然我发现有关设备充当外围设备的信息,我想我可以管理它,但是由于后台功能限制而反复停止我想知道这种情况是否是可能之前我花了很多时间试图完成一些事情,事实证明每个人都不可能。我是Swift和iOS的新手,因此我需要时间来完成更多工作。任何建议将不胜感激。 感谢

1 个答案:

答案 0 :(得分:2)

这是可能的,尽管背景有限制。

<强>前景:

  • 你所描述的正是可能的。 iOS允许使用CoreBluetooth同时宣传蓝牙LE服务,同时使用CoreLocation为iBeacons进行测距。

<强>背景

    在首次检测到信标区域后,
  • 使用CoreLocation的信标范围API将背景信标扫描限制为 5秒。您可以使用我写的here博客文章中的技术将这五秒钟的扫描时间延长到最多三分钟。延长时间需要在Info.plist中添加位置后台模式,这可能会使您的应用程序更难获得AppStore批准。

  • iOS背景下的蓝牙LE服务广告不像前景广告那样有效。它使用Apple专有技术将服务标识符折叠为一个较小的广告数据包,该数据包在所有宣传蓝牙LE服务的应用程序之间共享。非iOS蓝牙LE设备可能无法轻易发现这些内容:

  

忽略CBAdvertisementDataLocalNameKey广告密钥,并且不公布外围设备的本地名称。   包含在CBAdvertisementDataServiceUUIDsKey广告密钥值中的所有服务UUID都放在一个特殊的“溢出”区域中;它们只能由显式扫描它们的iOS设备发现。   如果所有正在投放广告的应用都在后台,则外围设备发送广告数据包的频率可能会降低。

有关详细信息,请参阅蓝牙 - 外围设备背景执行模式部分here