我尝试在赛普拉斯PSoC Creator 4.2中将BLE设备地址添加到广告数据中。
我在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功率水平,它会立即显示在我的打印输出中。
答案 0 :(得分:1)
Core Bluetooth不会将原始广告数据公开给您的应用;您只能访问与Advertisement keys关联的广告数据-设备地址不是这些键之一,而TX功率是。
除非在设备以其他某种方式(例如,通过GATT特性或在制造商特定数据中)将其公开,否则无法在Core Bluetooth中找到设备地址。>