赛普拉斯PSoC Creator / iOS应用:向广告数据添加BLE设备地址

时间:2019-01-20 19:21:27

标签: ios bluetooth-lowenergy core-bluetooth cypress psoc

我尝试在赛普拉斯PSoC Creator 4.2中将BLE设备地址添加到广告数据中。

enter image description here

我在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: {($0.RSSI.intValue) > ($1.RSSI.intValue)})
        }
    }
}

控制台显示:

  

[“ kCBAdvDataLocalName”:测试,“ kCBAdvDataIsConnectable”:1]

我不明白,为什么我的BLE设备地址没有打印!

顺便说一句:

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

1 个答案:

答案 0 :(得分:1)

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

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