【发布时间】:2014-08-02 21:00:26
【问题描述】:
是否可以区分“相同的”CLBeacons?意思是,CLBeacon 具有相同的 UUID,主要和次要,但来自不同的设备?
在我可以读到的 CLBeacon 类参考中,有一个属性 accuracy 可用于此目的。但是,假设两个设备在同一个位置上彼此重叠(可能不是现实世界的情况),这仍然是一个可靠的论点吗?
【问题讨论】:
标签: core-location ibeacon
是否可以区分“相同的”CLBeacons?意思是,CLBeacon 具有相同的 UUID,主要和次要,但来自不同的设备?
在我可以读到的 CLBeacon 类参考中,有一个属性 accuracy 可用于此目的。但是,假设两个设备在同一个位置上彼此重叠(可能不是现实世界的情况),这仍然是一个可靠的论点吗?
【问题讨论】:
标签: core-location ibeacon
CoreLocation API 无法做到这一点。如果您有两个具有相同 ProximityUUID/主要/次要组合的不同信标,则每个信标将在 iOS 测距回调中独立显示,但您将拥有无法知道哪个是哪个,因为没有其他标识符可以区分它们。
虽然内部 CoreLocation 实现尚未发布,但我的测试表明,CoreLocation 会锁定蓝牙 Mac 地址之外的唯一信标,使其能够意识到广播相同标识符的两个不同信标不仅仅是一个信标。不幸的是,CoreLocation 不允许您读取此 Mac 地址。
虽然您可以使用 CoreBluetooth API 读取 Mac 地址(或至少是它的派生),但您无法读取 iBeacon 标识符,因此无法将两者关联起来。 (见:http://developer.radiusnetworks.com/2013/10/21/corebluetooth-doesnt-let-you-see-ibeacons.html)
底线是,如果你想在 iOS 上区分两个 iBeacon,你必须给它们不同的标识符。
【讨论】:
您可以尝试通过 Core Bluetooth 检查广告数据,但从位置的角度来看,如果它们具有相同的 UUID(主要和次要),那么它们是同一个区域,尝试区分它们是没有意义的
【讨论】: