Cypress PSoC Creator / iOS App:将 BLE 设备地址添加到广告数据

Cypress PSoC Creator / iOS App: Add BLE device address to advertisement data

我尝试将 BLE 设备地址添加到 Cypress PSoC Creator 4.2 中的广告数据中。

我选中了 GAP 设置中的关联框并为我的 PSoC 4 器件 (CYBLE-212006-01) 构建了项目。


在我的 iOS 应用程序中,我使用以下例程 (CBCentralManager) 来发现外围设备并打印广告数据:

func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber){
    if peripheral.name != nil {
        if peripheral.name!.contains("TEST") {
        print(advertisementData)
        self.internalPeripheralArray.append(BluetoothPeripheral(name: peripheral.name!, UUID: peripheral.identifier, RSSI: RSSI, peripheral: peripheral, selected: false))
            self.internalPeripheralArray.sort(by: {([=11=].RSSI.intValue) > (.RSSI.intValue)})
        }
    }
}

控制台打印:

["kCBAdvDataLocalName": TEST, "kCBAdvDataIsConnectable": 1]

无法理解,为什么我的BLE设备地址没有打印!

顺便说一句:

如果我添加任何其他广告数据包,例如 TX 功率级别,它会立即显示在我的打印输出中。

Core Bluetooth 不会向您的应用公开原始广告数据;您只能访问与 Advertisement keys 关联的广告数据 - 设备地址不是这些密钥之一,而 TX 功率级别是。

无法在 Core Bluetooth 中找到设备地址,除非设备以其他方式公开它,例如通过 GATT 特性或在制造商特定数据中,例如。