CBPeripheral,获取本地外设标识符

问题描述 投票:2回答:1

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

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

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

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

那我怎么能得到我的本地设备(Device2)标识符?我的意思是,如果两个设备都是广告,Device1也会发现Device2并获得它的外围设备标识符,但我怎样才能在Device2上获得这个标识符(某种自身地址)?

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

ios core-bluetooth ibeacon cbcentralmanager cbperipheral
1个回答
7
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.