我有两台运行 7.1 的 iOS 设备,一台用作 CBCentral,另一台用作 CBPeripheral。两个设备都在运行我自己创建的软件,所以所有 UUID/CBService/CBCharacteristic 都是我生成的,所有参数都是固定的,并且在任何时候都是已知的。
此外,两个设备都可以访问共享服务器,以存储我可能需要的任何任意数据。
鉴于我控制着整个生态系统,有没有办法让 CBCentral 设备连接到 CBPeripheral 设备,而无需先执行 scanForPeripheralsWithServices:
调用?从某种意义上说,我想在两个设备相互接触之前“教导”Central 关于 Peripheral 的存在。
也许 CBPeripheralManager 单元可以将一些数据或值发布到 CBCentralManager 单元可以拉取的服务器,然后直接分配/初始化它自己的 CBPeripheral 对象以用于 connectPeripheral:options:
?
最佳答案
不,你不能。 Core Bluetooth 使用内部生成的 UUID 来识别对等点。如果不扫描,系统将无法识别外设,您将无法调用 retrievePeripheralsWithIdentifiers:
方法获取可调用 connectPeripheral:
的 CBPeripheral > 上。
由于无法注入(inject) UUID,您必须至少扫描一次。但是取决于很多因素,可能很多次。
关于ios - CBCentral 连接到 CBPeripheral 无需扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22449510/