ios - 通过 iPhone 设备扫描三个具有相同 CBUUID 但 MAC 地址不同的相同 BLE 传感器

标签 ios bluetooth-lowenergy core-bluetooth cbperipheral cbcentralmanager

我有 3 个具有相同 CBUUID 的传感器,即所有三个传感器都传输相同类型的服务,但具有不同的 MAC 地址。

在前台扫描中一切正常,我可以使用 CBCentralManagerScanOptionAllowDuplicatesKey = YES 为不同的 BLE 设备获取相同 CBUUID 的不同委托(delegate)回调。但是在外围设备的后台扫描中,CBCentralManagerScanOptionAllowDuplicatesKey被忽略了。我将如何在后台扫描这 3 个传感器,因为所有数据包都将合并为一个数据包并由 iOS 公布为一个数据包。

This link talks about only foreground scanning

最佳答案

allowDuplicates 选项意味着您的应用将接收到针对同一外围设备的 didDiscover 委托(delegate)方法的多个回调。

不需要简单地发现多个正在通告相同服务的外围设备。

当您开始扫描时,您应该指定您感兴趣的服务CBUUID。一旦您收到对didDiscover 的调用,您就可以存储外围设备的 identifier 并在将来使用它连接到外围设备。

扫描特定服务在前台和后台均有效。

关于ios - 通过 iPhone 设备扫描三个具有相同 CBUUID 但 MAC 地址不同的相同 BLE 传感器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52468669/

相关文章:

iphone - 如何让音频从 iPhone 上的在线 url 播放

android - 如何从蓝牙 LE 设备获取数据

swift - iOS 核心蓝牙 : startAdvertising() Error advertising static data

ios - CBCentralManagerScanOptionSolicitedServiceUUIDsKey 的目的

ios - 应用程序读取我的 Apple ID

ios - 当文本为零时如何轻松折叠标签周围的垂直空间?

IOS SDK - 如何截屏tableView的内容?

java - 无法在 Android 中扫描或发现 BT 和 BLE 设备

android - 在 Android 中检测蓝牙 Le 设备

ios - CBCentralManager setNotifyValue : not working