我的设备是支持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]}];
}
}];
蓝牙广播会不断发送广播包,我是通过它自动scan进行自动重连的!retrive那个方法我发现如果蓝牙不重启,不可行,
manager 获取到的Peripheral会自动释放,要重新创建一个Peripheral对象等于获取到的Peripheral,或者把获取到的Peripheral加入数组,就可以重新连接了
希望对你们会有帮助,
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。