ios - CBCentral 连接到 CBPeripheral 无需扫描

标签 ios ios7 core-bluetooth

我有两台运行 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/

相关文章:

ios - 在ios7中隐藏键盘

ios - iOS7中的UIAlertView addSubview

iOS UUID 已弃用 corebluetooth

ios - 如何将私有(private)可解析地址作为 iOS 外围设备处理

ios - 将 AVPlayerViewController 背景更改为专辑封面 objective-c iOS

ios - 如何将 .md 中的开源许可确认添加到 ios 应用程序的确认中

uitableview - ReloadSections 后,TableView 部分变为隐藏

macos - CoreBluetooth 扫描检测时间在 MacOS 上不可靠

ios - 可选原始类型的字符串初始值设定项 : Int? Double?漂浮? ETC

ios - 如何在 Objective C 的 TableView 中调用 CollectionView 的委托(delegate)方法?