CBPeripheral,获取本地外设标识符

时间:2014-11-14 13:08:28

标签: ios core-bluetooth ibeacon cbcentralmanager cbperipheral

我遇到了关于CoreBluetooth Framework的问题。

例如,我有两个设备,每个设备都执行广告和扫描。因此,我在每个上都使用了CBCentralManagerCBPeripheralManager

因此,为了简化问题,我们假设 Device1 正在广播并 Device2 扫描。

Device2 上的CBCentralManager发现 Device1 时,回调 centralManager:didDiscoverPeripheral:advertisementData:RSSI: 被调用,我可以通过调用[peripheral.identifier UUIDString]来获取 Device1 标识符。

然后我如何获取本地设备( Device2 )标识符? 我的意思是,如果两个设备都是广告, Device1 也会发现 Device2 并获取它的外围设备标识符,但 如何在 Device2 上获取此标识符(某种自我地址)?

P.S。我知道这个标识符对于每个设备都不是唯一的,并且可以随时间变化,这不是问题。

1 个答案:

答案 0 :(得分:7)

不幸的是你不能这样做。 [peripheral.identifier UUIDString]返回的标识符由iOS在接收设备上自动生成。它由发射器Mac地址(不会改变)和iOS开始看到设备的时间(确实发生变化)播种。

由于第二个因素是不可预测的,并且id生成算法未发布的事实,您无法预测此ID将在发送器端。

底线,如果您想要一个可预测的唯一ID,则不能使用此字段