iOS开发如何取消待处理的peripheral本地连接请求
iOS取消待处理外设本地连接请求方案
不管是已经连接成功的外设,还是已经发起连接请求但还未完成连接的待处理状态外设,都统一使用CBCentralManager的cancelPeripheralConnection(_:)方法取消连接,不需要调用其他额外API,操作步骤如下:
- 持有你之前调用
connect(_:options:)方法时传入的同一个CBPeripheral实例,不要提前释放该实例 - 将待取消连接的peripheral实例作为参数传入方法:
centralManager.cancelPeripheralConnection(pendingPeripheral) - 调用后等待
CBCentralManagerDelegate的回调:
若待处理连接取消成功,你会收到centralManager(_:didDisconnectPeripheral:error:)回调,回调的error参数值为CBError.connectionCancelled即可确认待处理连接已主动取消。
注意事项
- 不要在调用
cancelPeripheralConnection(_:)之后立刻将peripheral实例置空,需要等待断开回调触发后再清理相关实例,避免回调无法正常触发 - 如果你同时发起了多个外设的连接请求,只需要对每个待取消的peripheral分别调用一次取消方法即可,互不影响
内容的提问来源于stack exchange,提问作者Virat
相关产品推荐
相关产品推荐

