在 mac osx 10.13 CoreBluetooth 框架上的 CBPeripheralStateDisconnecting 状态之后,外设状态永远不会改变

Posted

技术标签:

【中文标题】在 mac osx 10.13 CoreBluetooth 框架上的 CBPeripheralStateDisconnecting 状态之后,外设状态永远不会改变【英文标题】:Peripheral state never changes after CBPeripheralStateDisconnecting state on mac osx 10.13 CoreBluetooth framework 【发布时间】:2018-01-05 05:23:23 【问题描述】:

我已将 macOS 更新为 High sierra 并将 Xcode 更新为 9.2。我正在处理 BLE 设备连接/断开连接和读取数据。它在 Xcode 8.2 中运行良好,现在 CoreBluetooth 框架发生了变化。

在外围状态中添加了一个新状态CBPeripheralStateDisconnecting。现在,我也需要从CBPeripheralStateConnecting 状态取消与 BLE 设备的连接的功能。

我已使用cancelPeripheralConnection: 方法取消连接。此方法后设备状态更改为CBPeripheralStateDisconnecting 并且永远不会进入状态CBPeripheralStateDisconnected。我尝试再次连接,但状态仍然没有改变。

简而言之,BLE 设备状态在CBPeripheralStateDisconnecting 状态之后永远不会改变。请问有大神可以推荐一下吗?

提前致谢。

【问题讨论】:

还没有人遇到同样的问题?我还在寻找解决方案 【参考方案1】:

我通过将 CBPeripheralStateDisconnecting 和 CBPeripheralStateDisconnected 状态视为相同来解决问题。在 CBPeripheralStateDisconnecting 上实现了与 CBPeripheralStateDisconnected 相同的流程,即再次向设备发送连接请求并且它工作正常。

【讨论】:

以上是关于在 mac osx 10.13 CoreBluetooth 框架上的 CBPeripheralStateDisconnecting 状态之后,外设状态永远不会改变的主要内容,如果未能解决你的问题,请参考以下文章

没有可用的二进制红宝石:osx/10.13/x86_64/ruby-2.2.3

解决OSX 10.13 High Sierra brew update问题

iphone模拟器(10.3)时间未根据mac OS(10.13)中的时区显示

VMW14.x虚拟机安装Mac10.13系统教程

无法在 Mac OS X 10.13 High Sierra 中为自制软件 chown /usr/local

哈工大分词器在 mac os 10.13上的源码安装