ios - 我应该如何将多个 BLE 外围设备连接到 iOS 设备?

标签 ios bluetooth-lowenergy core-bluetooth

目前我的团队正在打电话

[myCentralManager scanForPeripheralsWithServices:nil options:nil];

然后启动一个在两秒内触发的 NSTimer。在这两秒中,Central Manager 委托(delegate)方法

centralManager:didDiscoverPeripheral:advertisementData:RSSI:

用于创建我们感兴趣的CBPeripherals数组。

当计时器触发时,我们在 for 循环中对数组中的每个项目调用 connectPeripheral

我担心这不是同时连接多个设备的最佳方式。在另一台设备上调用 connectPeripheral 之前,我们是否应该等待一台设备的连接过程完成?

感谢您的任何建议。

最佳答案

您遇到过问题吗?如果没有,那就按照你的方式去做。

一些额外的想法:

  • 通常,建议在开始连接请求之前停止扫描。以这种方式建立连接的速度会大大加快。
  • 一次启动多个连接对 API 端没有影响,但是,顺序执行可能更安全(从稳健性的角度来看)。这样您就可以防止核心蓝牙堆栈过载。
  • 我宁愿使用 GCD 而不是 NSTimer dispatch_after功能,但这是我个人的喜好。 (使用 ReactiveCocoa 会更好。)

关于ios - 我应该如何将多个 BLE 外围设备连接到 iOS 设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21084198/

相关文章:

ios - 使用 Objective C 创建并从 Swift 获取的核心数据

java - 当我使用 onNewIntent 时发生 java.lang.NullPointerException 的错误

java - 安卓蓝牙 : cannot write a Characteristic (no PROPERTY_WRITE)

ios - 如何从 swift 4 中的蓝牙低功耗设备获取广告和响应数据?

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

ios - 我的 iPad 应用程序会终止 wifi 直到最小化

ios - 为什么?单元测试覆盖率中显示的类即使未添加到测试目标中

ios - 防止循环循环,直到内部循环写入磁盘

android - AltBeacon 在停止蓝牙后继续扫描

android - 如何通过读/写 BLE Gatt 特性实现最大的线程安全性?