我如何在CoreBluetooth Swift中获得kcbadvdatammanufacturerdata



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

我可以执行:

println("(advertisementData)")

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

[kCBAdvDataIsConnectable: 0, kCBAdvDataLocalName: mangos, kcbadvdatammanufacturerdata: <08e19515 ec7e49fd af85c719 37332ccd cafebabe>]

这是膨胀的,但我需要比较kcbadvdatammanufacturerdata中的数据与字符串,并让它执行一个函数,如果它们是相同的。

我如何创建一个访问序列号/kcbadvdatammanufacturerdata的变量?我试过很多不同的方法。

函数代码:

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)
}
}

确认。figure it out:

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

相关内容

  • 没有找到相关文章

最新更新