【问题标题】:How do I get a hold of kCBAdvDataManufacturerData in CoreBluetooth Swift?如何在 CoreBluetooth Swift 中获取 kCBAdvDataManufacturerData?
【发布时间】:2015-10-11 02:20:46
【问题描述】:

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

我能够执行:

println("\(advertisementData)")

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

[kCBAdvDataIsConnectable:0,kCBAdvDataLocalName:芒果,kCBAdvDataManufacturerData:]

这很好,但我需要将 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)
}
}

【问题讨论】:

    标签: ios iphone swift core-bluetooth


    【解决方案1】:

    确认。想通了:

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

    【讨论】:

    • 您是否尝试将其转换为整数数组
    猜你喜欢
    • 2017-06-27
    • 1970-01-01
    • 2018-02-05
    • 2012-09-03
    • 2020-10-08
    • 2014-09-22
    • 2014-08-12
    • 2018-03-01
    • 2017-08-28
    相关资源
    最近更新 更多