gpt4 book ai didi

ios - 如何在 CoreBluetooth Swift 中获取 kCBAdvDataManufacturerData?

转载 作者:行者123 更新时间:2023-11-28 06:57:25 28 4
gpt4 key购买 nike

我有一个 Broadcom BLE 外设广播数据,其中包括以制造商数据形式发布的序列号。当我尝试在 iOS (Swift) 中获取它时,我很难弄清楚如何将它变成变量或常量。

我能够执行:

println("\(advertisementData)")

'advertisementData' 内置于 centralManager 函数中。在控制台中我得到:

[kCBAdvDataIsConnectable: 0, kCBAdvDataLocalName: 芒果, kCBAdvDataManufacturerData: <08e19515 ec7e49fd af85c719 37332ccd cafebabe>]

这很好,但我需要将 kCBAdvDataManufacturerData 中的数据与字符串进行比较,如果它们相同,则让它执行一个函数。

我究竟应该如何创建一个访问序列号/kCBAdvDataManufacturerData 的变量?我尝试了许多不同的路线。

函数代码:

func centralManager(central: CBCentralManager!, didDiscoverPeripheral peripheral: CBPeripheral!, advertisementData: [NSObject : AnyObject]!, RSSI: NSNumber!) {
let localData = advertisementData as NSDictionary


println(localData.objectForKey(CBAdvertisementDataLocalNameKey))


var localName: NSString!
if (localData.objectForKey(CBAdvertisementDataLocalNameKey) == nil)
{
localName = ""
}
else{
localName = localData.objectForKey(CBAdvertisementDataLocalNameKey) as! NSString

if (localName == "test"){

println("Test Found!")
println("\(advertisementData)")
}
}

self.tLog(NSString(format: "Discovered %@, RSSI: %@\n", localName, RSSI))
self.discoveredPeripheral = peripheral

if (self.verboseMode())
{
self.centralManager.connectPeripheral(peripheral, options: nil)
}
}

最佳答案

确认。想通了:

println(advertisementData["kCBAdvDataManufacturerData"] as! NSData)

关于ios - 如何在 CoreBluetooth Swift 中获取 kCBAdvDataManufacturerData?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33060931/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com