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

在iOS项目中,当设备支持ANCS协议并配对后,系统会自动连接,导致应用无法搜索并连接该设备。通过`retrieveConnectedPeripheralsWithServices:`找到已连接设备,并使用`connectPeripheral:options:`尝试连接失败。解决方案是,当检测到系统已连接设备时,不应再执行`scanForPeripheralsWithServices:`,而是直接进行连接操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

-(void)scanDevices:(blackscanPeriperalInfos)blackPeriperalInfos;

{

    //zwl

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

    NSArray *arr = [self.CBcentralmagager retrieveConnectedPeripheralsWithServices:@[ [CBUUID UUIDWithString:ServiceUUID]]];

    if(arr.count>0)

    {

     for (CBPeripheral* peripheral in arr)

     {

             if (peripheral != nil)

             {

                 peripheral.delegate = self;

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

             }

     }

    }

    else

    {

        [self.CBcentralmagager scanForPeripheralsWithServices:nil options:nil];

    }

}




转载于:https://my.oschina.net/u/2564478/blog/667507

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值