CoreBluetooth反复断开连接

Big*_*ire 7 background-process ios core-bluetooth

我一直在寻找这个问题,但似乎没有人拥有它.

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

  1. 中央应用运行并开始扫描
  2. 外围广告服务(或在范围内)
  3. 中央设备连接到外围设备并停止扫描
  4. 周边停止广告(或叶子范围)
  5. 中央设备断开连接并开始扫描
  6. 无论中心位于前景还是后台,都可以无缝执行步骤1-5

当我运行我的中央iPad应用程序时,步骤3和5每10秒重复一次,即使该服务正在整个时间进行广告宣传.这发生在前景和背景中.

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

Error occurred while disconnecting peripheral: The specified device has disconnected from us.
Run Code Online (Sandbox Code Playgroud)

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

afr*_*ick 7

在我的情况下,解决方案是订阅特征,无论值是否是静态的.它好像订阅将保持连接,而如果你读一次性值框架会尽量延长电池寿命和断开连接,迫使你进行另一次读之前,需要手动重新连接或写入.