如何在 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 超类中,CBCentral 和 CBPeripheral 都从该超类继承。
所以现在你应该使用:
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 值