【问题标题】:Get Ibeacon name获取 Ibeacon 名称
【发布时间】:2022-01-14 21:44:02
【问题描述】:

我有多个具有相同 UUID 的信标,我使用 CoreLocation 扫描这些信标;

    func locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion) {
           // extendBackgroundRunningTime()
            if beacons.count > 0 {
                for beacon in beacons {
                    print(region.identifier)
                    print(beacons[0].proximityUUID)            
                }
                    
                
            } else {
 }

我想获得 ibeacon 的特定名称。有没有可能?还有有什么方法可以区分每个信标吗?

【问题讨论】:

    标签: ios swift core-location


    【解决方案1】:

    您只能通过 proximityUUIDmajorminor 来区分信标。

    iBeacon 没有名称。

    某些供应商可能允许您在其设置应用程序中命名信标,但此名称不是 iBeacon 标准的一部分,并且无法通过 Core Location 看到。

    通常,您的所有信标都将具有相同的proximityUUID,以便您可以使用单个信标区域发现它们。然后,您使用特定的 majorminor 值来确定您发现的信标。

    您可以阅读 iBeacon 广告的格式here

    【讨论】:

    • 谢谢。但是我们使用相同的minor和major以及uuıd来扫描 let beaconRegion = CLBeaconRegion(proximityUUID: uuid, major: 0, minor: 0, identifier: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")。我不明白为什么我们不使用 CoreLocation 访问信标名称。这给我们带来了额外的工作:(
    • 正如我所说,iBeacon 规范不包含名称。蓝牙广告包中的空间有限。为了有效利用该空间,iBeacon 会发布 uuid 和两个 16 位数字;主要和次要。这允许每个 uuid 有 4,294,967,296 个唯一的 IBeacon。绰绰有余。很抱歉,您在设置 IBeacons 时不了解它们的工作原理,但事实就是如此。
    • 当您指定信标区域时,您通常只指定 uuid,而未定义主要和次要。然后,一旦您进入一个区域,您就开始测距并根据其主要和次要识别特定信标。
    • 感谢有用的推荐。我将获取这些信息并进行必要的更新。
    猜你喜欢
    • 2015-07-10
    • 2023-04-08
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 2023-03-13
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多