Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用iOS CoreBluetooth同时扫描多个BLE服务_Ios_Core Bluetooth - Fatal编程技术网

如何使用iOS CoreBluetooth同时扫描多个BLE服务

如何使用iOS CoreBluetooth同时扫描多个BLE服务,ios,core-bluetooth,Ios,Core Bluetooth,我正在尝试为我的iOS应用程序寻找一种好方法来扫描三种不同类型的蓝牙LE外设,每种外设都由一个唯一的服务/UUID表示。CBCentralManager scanForPeripheralsWithServices:options方法采用一组服务uuid,文档中指出,提供此方法时,“中央管理器仅返回播发您指定的服务的外围设备”。然而,我发现这实际上意味着,如果您指定3个服务UUID,那么您将只得到宣传所有这三个服务的外围设备。i、 e.它是一个而不是一个OR:它不会返回在阵列中宣传这些服务的所有

我正在尝试为我的iOS应用程序寻找一种好方法来扫描三种不同类型的蓝牙LE外设,每种外设都由一个唯一的服务/UUID表示。CBCentralManager scanForPeripheralsWithServices:options方法采用一组服务uuid,文档中指出,提供此方法时,“中央管理器仅返回播发您指定的服务的外围设备”。然而,我发现这实际上意味着,如果您指定3个服务UUID,那么您将只得到宣传所有这三个服务的外围设备。i、 e.它是一个而不是一个OR:它不会返回在阵列中宣传这些服务的所有外围设备


我看到的唯一其他选项是为服务uuid数组传递一个“nil”,并且根据文档“返回所有发现的外围设备,不管它们支持的服务是什么(不推荐)”。然后,我可以筛选我正在寻找的三个服务UUID中的任何一个。但苹果似乎是在劝阻我不要这么做,因为它告诉我不推荐这样做。有人知道为什么吗?

苹果不建议使用
nil
,因为它效率不高,而且会影响电池寿命


解决方案只是创建三个
CBCentralManager
实例,并让每个实例扫描不同的服务。您甚至可以使用相同的委托实例,因为
CBCentralManager
实例被传递给委托方法。

Ah。谢谢你,保罗。我试试看