如何确定发现的外围设备的 serviceUUID
Posted
技术标签:
【中文标题】如何确定发现的外围设备的 serviceUUID【英文标题】:How to determine the serviceUUID of the discovered peripheral 【发布时间】:2020-07-10 21:36:08 【问题描述】:我的应用将具有一组 serviceUUID,可用于发现选定的外围设备。一旦发现该集合中的外围设备,我如何确定它具有/必须允许它被发现的 serviceUUID?外围设备标识符的 UUID 似乎与我在测试代码中提供的 serviceUUID 不同。
【问题讨论】:
对于未来的问题,您可能需要添加标签“core-bluetooth”,以便有专业知识的人轻松找到您的问题。 【参考方案1】:您可以从广告中读取检测到的服务 UUID,但它们可能会出现在两个地方,具体取决于广告是否来自后台 ios 设备(在“溢出区域”中传输)。
尝试这样的方法从两个地方获取服务 UUID 列表:
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber)
var detectedServiceUuids = advertisementData[CBAdvertisementDataServiceUUIDsKey] as? [CBUUID] ?? []
if let detectedOverflowUuids = advertisementData[CBAdvertisementDataOverflowServiceUUIDsKey] as? [CBUUID]
detectedServiceUuids.append(contentsOf: detectedOverflowUuids)
for detectedServiceUuid in detectedServiceUuids
print("I detected serviceUuid: \(detectedServiceUuid)")
【讨论】:
以上是关于如何确定发现的外围设备的 serviceUUID的主要内容,如果未能解决你的问题,请参考以下文章