没有扫描的CBCentral连接到CBPeripheral

时间:2014-03-17 08:17:43

标签: ios ios7 core-bluetooth

我在7.1上有两个iOS设备,一个用作CBCentral,另一个用作CBPeripheral。这两个设备都运行我自己创建的软件,因此所有UUID / CBService / CBC特性都由我生成,并且所有参数都是固定的并且始终是已知的。

同样,两台设备都可以访问共享服务器,以存储我可能需要的任意数据。

鉴于我掌控整个生态系统,有没有办法让CBCentral设备连接到CBPeripheral设备而无需先进行scanForPeripheralsWithServices:呼叫?从某种意义上说,我希望在两个设备相互接触之前,向中心“教导”外围设备的存在。

也许CBPeripheralManager单元可以将一些数据或值发布到CBCentralManager单元可以提取的服务器,然后直接分配/初始化其自己的CBPeripheral对象以用于connectPeripheral:options:

1 个答案:

答案 0 :(得分:5)

不,你不能。核心蓝牙使用内部生成的UUID来识别对等体。如果您不扫描,系统将无法识别外围设备,您将无法调用retrievePeripheralsWithIdentifiers:方法来获取可以调用connectPeripheral:的CBPeripheral。

由于无法注入UUID,因此必须至少扫描一次。但取决于很多因素,可能很多次。