CoreBluetooth反复断开连接

时间:2013-10-17 16:50:01

标签: ios background-process core-bluetooth

我为这个问题上下打量,但似乎没人看到它。

我有两台iPad。一个充当蓝牙外围设备,始终在前台。由于我对中心方面更感兴趣,因此我将中央iPad背景能够用于BLE-central。我的工作流程如下:

  1. 中央应用运行并开始扫描
  2. 外围广告服务(或在范围内)
  3. 中央设备连接到外围设备并停止扫描
  4. 周边停止广告(或离开范围)
  5. 中央设备断开连接并开始扫描
  6. 无论中心位于前景还是背景中,都可以无缝地执行步骤1-5
  7. 当我运行我的中央iPad应用程序时,步骤3和5每10秒重复一次,即使该服务正在整个时间进行广告宣传。这发生在前景和背景中。

    断开连接时,我收到此错误:

    Error occurred while disconnecting peripheral: The specified device has disconnected from us.
    

    关于它为什么一直断开连接的任何想法?如果没有数据传输,CoreBluetooth会清理连接吗?现在,我的中心正在对外围特征进行一次性读取。它没有订阅更新,因为值是静态的。 谢谢!

1 个答案:

答案 0 :(得分:7)

在我的情况下,解决方案是订阅特征,无论值是否为静态。似乎订阅将使连接保持活动状态,而如果您读取一次性值,框架将尝试节省电池寿命并断开连接,强制您在执行另一次读取或写入之前手动重新连接。