iOS关于app连接已配对设备的问题(ancs协议的锅)

很多同学在做蓝牙开发的时候,很有可能你的设备是支持ancs协议的,那么ancs协议在首次连接app蓝牙的时候就会配对,之后只要你手机开着蓝牙,它都会自动连接。这时候,你再进入app,会发现明明在设置里面显示蓝牙已经连接,但是你在app怎么搜索都搜索不到改蓝牙外设。
这个时候,就需要用到 retrieveConnectedPeripheralsWithServices 这个方法了。
大概思路就是 当用户进去app,只要发现手机的蓝牙已经开启,那么就可以执行以下代码:

 //已经被系统或者其他APP连接上的设备数组
            NSArray *arr = [self.cmgr retrieveConnectedPeripheralsWithServices:@[[CBUUID UUIDWithString:serviceUUID]]];//serviceUUID就是你首次连接配对的蓝牙
            NSLog(@"%@",arr);
            if(arr.count>0)
            {
                for (CBPeripheral* peripheral in arr)
                {
                    if (peripheral != nil)
                    {
                        self.peripherale = peripheral;//这一个必须要,需要一个全局变量接受,否则无法连接
                        [self.cmgr connectPeripheral:self.peripherale options:nil];
                    }
                }
            }

要注意的是,手机作为中心者模式,是可以连接多个从机的,你要必须从连接到的数组里面找到你要连接的蓝牙外设

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容