如何在 CoreBluetooth 中测试两个 CBPeripheral 的相等性?

Posted

技术标签:

【中文标题】如何在 CoreBluetooth 中测试两个 CBPeripheral 的相等性?【英文标题】:How to test equality on two CBPeripherals in CoreBluetooth? 【发布时间】:2016-04-19 04:01:08 【问题描述】:

所以基本上我在扫描设备期间保留了一个外围设备池。当我发现一个外围设备时,我想首先检查该外围设备是否已经在我的池中。如果它已经在池中,那么我只想更新我已经拥有的那个外围设备的句柄。如果它还没有在池中,我想将它添加到池中。

问题是 CoreBluetooth 不再允许访问外围设备的 UUID。用于访问设备 UUID 的两种方法在 ios 7.1 中均已弃用。

那么在CoreBluetooth中测试外设是否相等的正确方法是什么?

【问题讨论】:

【参考方案1】:

是的,它已被 CBPeripheral 类弃用。但是新的“标识符”属性被添加到 CBPeer 超类中,CBCentralCBPeripheral 都从该超类继承。

所以现在你应该使用:

peripheral.identifier.UUIDString

您可以在此处查看 AP 的变化: https://developer.apple.com/library/ios/releasenotes/General/iOS80APIDiffs/frameworks/CoreBluetooth.html

【讨论】:

以上是关于如何在 CoreBluetooth 中测试两个 CBPeripheral 的相等性?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 [CoreBluetooth] 警告:对于具有多个设备连接的外围设备来说,这不是一个有效的特征

如何获取/查找 CoreBluetooth.Framework?

如何在 CoreBluetooth Swift 中获取 kCBAdvDataManufacturerData?

iPhone 4S 上的 Corebluetooth 故障?

CoreBluetooth 功能在 Singleton 中不起作用

如何使用 CoreBluetooth 从 1822 PulseOximeter 的蓝牙 LE 数据中提取 SFLOAT 值