iOS BLE 关于app连接已配对设备的问题

之前在做项目的时候遇到这个问题,我的设备是支持ANCS协议的,但是每次配对后系统就会自动和我的设备连接,我无法搜索到这个设备,通过 retrieveConnectedPeripheralsWithServices:这方法可以找到已经被连接上的所有设备,但是我想利用 connectPeripheral:options对找到的设备进行连接,但是不成功,纠结了好久终于给我发现问题,在已经搜索到系统已连接上的设备后,不应该继续走设备搜索的方法了,所以connectPeripheral:options对找到的设备进行连接和scanForPeripheralsWithServices 应该是两个分支,代码如下:

-(void)scanDevices:(blackscanPeriperalInfos)blackPeriperalInfos;

{

    //zwl

    //已经被系统或者其他APP连接上的设备数组

    NSArray *arr = [self.CBcentralmagagerretrieveConnectedPeripheralsWithServices:@[[CBUUIDUUIDWithString:ServiceUUID]]];

    if(arr.count>0)

    {

     for (CBPeripheral* peripheralin arr)

     {

             if (peripheral != nil)

             {

                 peripheral.delegate = self;

                 

//manager 获取到的Peripheral会自动释放,要重新创建一个Peripheral对象等于获取到的Peripheral,之前项目中有这个,写博客的时候少了这句,导致好多朋友反应这个方法实现不了,后边一位朋友跟我聊得时候发现少了这句,现在补上

                self.peripheral = peripheral;

                [centralManager connectPeripheral:self.peripheral options:nil];

             }

     }

    }

    else

    {

        [self.CBcentralmagagerscanForPeripheralsWithServices:niloptions:nil];

    }

}




你可能感兴趣的:(iOS BLE 关于app连接已配对设备的问题)