7

我一直在寻找这个问题,但似乎没有人遇到它。

我有两个 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.

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

4

1 回答 1

7

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

于 2014-01-28T04:46:50.640 回答