如何在Swift 4中从蓝牙低功耗设备获取广告和响应数据?

时间:2018-08-09 02:44:06

标签: ios swift bluetooth bluetooth-lowenergy core-bluetooth

我的IOS应用程序正在尝试从蓝色设备获取广告和响应数据,而没有连接到它。广告和响应数据都应为31个字节长(我们也使用了4个字节的标头,外加27个字节的数据),总共62个字节。虽然android版本的应用程序可以轻松获取所有这些数据,但我无法迅速获取它们。我在corebluetooth中调用了广告,但是只收到27字节的响应数据。我找不到响应数据的4个标头字节,也找不到广告数据的31个字节。

func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
......
let data2: NSDictionary? = advertisementData[CBAdvertisementDataServiceDataKey] as? NSDictionary
    if data2 != nil {
        let str :Data = (data2!.allValues)[0] as! Data
        bytes = [UInt8](str)
        print("advertisement data: ",bytes)
    }
}

1 个答案:

答案 0 :(得分:0)

打印adsData,您将看到iOS正在获取完整的广告数据。

func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
        print(advertisementData)
        // Add discovered peripheral to the list
        nearbyPeripherals.append(peripheral)
}

您可以按照此iOS iOS蓝牙指南进行操作。 https://www.raywenderlich.com/231-core-bluetooth-tutorial-for-ios-heart-rate-monitor