开发者社区> 问答> 正文

关于IOS 蓝牙连接系统已经配对连接好的设备

我的设备是支持ANCS协议的,但是每次配对后系统就会自动和我的设备连接,我无法搜索到这个设备,通过 retrieveConnectedPeripheralsWithServices:这方法可以找到已经被连接上的所有设备,但是我想利用 connectPeripheral:options对找到的设备进行连接,但是不成功,有没有人能指导我一下如何能连接成功呢。

我代码如下

//已经被系统或者其他APP连接上的设备数组 
                NSArray *arr = [SmaBleMgr.mgr retrieveConnectedPeripheralsWithServices:@[[CBUUID UUIDWithString:@"180F"]]]; 
 //    NSLog(@"222ConnectedPeripherals===%@   %@ %@  %lu ",arr,SmaBleMgr.peripheral,SmaBleMgr.islink,(unsigned long)arr.count); 
      
                [arr enumerateObjectsUsingBlock:^(CBPeripheral *obj, NSUInteger idx, BOOL *stop) { 
 //连接首个被连接的设备(一般只有一个设备被系统连接上) 
                NSLog(@"连接=====%@ %lu   \n%@",obj,(unsigned long)idx,obj.services); 
 //利用中心将设备连接起来,并确保设备没被本APP连接 
              if (obj.state == CBPeripheralStateDisconnected && idx == 0) { 
                           obj.delegate = self; 
  
                           [SmaBleMgr.mgr connectPeripheral:obj options:@{CBConnectPeripheralOptionNotifyOnDisconnectionKey:[NSNumber numberWithBool:TRUE]}]; 
          
         } 
          
     }]; 

展开
收起
杨冬芳 2016-06-24 14:59:00 4569 0
1 条回答
写回答
取消 提交回答
  • IT从业

    蓝牙广播会不断发送广播包,我是通过它自动scan进行自动重连的!retrive那个方法我发现如果蓝牙不重启,不可行,

    manager 获取到的Peripheral会自动释放,要重新创建一个Peripheral对象等于获取到的Peripheral,或者把获取到的Peripheral加入数组,就可以重新连接了

    希望对你们会有帮助,

    2019-07-17 19:47:00
    赞同 展开评论 打赏
问答分类:
问答地址:
相关产品:
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载