是否可以在“后台”中使用Corebluetooth扫描iBeacon广告数据?

时间:2015-06-30 21:11:08

标签: ios bluetooth-lowenergy

我希望能够使用已知邻近UUID的后台CoreBluetooth框架扫描iBeacons广告数据。我能够使用以下方法扫描FOREGROUND中的所有外围设备:

B

当应用程序进入后台但我没有返回任何数据时,我尝试这样做。甚至可以在后台使用Corebluetooth框架扫描iBeacons吗?

由于

1 个答案:

答案 0 :(得分:0)

来自Core Bluetooth Programming Guide

  

当实现核心角色的应用程序包含   UIBackgroundModes键具有蓝牙中心值   Info.plist文件,核心蓝牙框架允许您的应用程序运行   在后台执行某些与蓝牙相关的任务。而   您的应用程序位于后台,您仍然可以发现并连接到该应用程序   外围设备,探索外围数据并与之互动

     

虽然您可以在应用中执行许多与蓝牙相关的任务   是在后台,请记住扫描外围设备时   您的应用在后台运行的方式与您的应用时不同   在前台。特别是,当您的应用扫描时   设备在后台:

     
      
  • CBCentralManagerScanOptionAllowDuplicatesKey扫描选项键是   忽略,广告外围设备的多个发现   合并为一个发现事件。
  •   
  • 如果所有正在扫描的应用   对于外围设备是在后台,你的间隔   中央设备扫描广告包增加。结果是,   发现广告外围设备可能需要更长时间。
  •   

您应确认已在项目设置中指定了背景模式键,并且您的CBCentralManager实例已正确实例化。

但是,我注意到,即使是前台处理,您的蓝牙扫描代码也不是特别有效。除非严格必要,否则不应包含重复项密钥,您应该指定您感兴趣的服务UUID而不是nil。

相关问题