【问题标题】:iBeacon - Difference between proximityUUID and region.identifieriBeacon -proximityUUID 和 region.identifier 之间的区别
【发布时间】:2013-12-31 23:18:39
【问题描述】:

我对 CLBeaconRegion UUID 和字符串标识符的重要性有点困惑。 如果我的 CLBeaconRegion 已经有一个唯一 ID,那么强制使用额外的非唯一字符串标识符有什么意义?纯粹是“化妆品”吗?

因为用户将无法像使用 WiFi(和 SSID)那样扫描和连接到信标区域,并且接收器应用程序需要预编码和预定义的 CLBeaconRegion 才能进入和范围一个地区的信标,标识符的真正用途是什么?

我已经看到人们使用它来放置诸如 com.companyname.app 之类的东西的示例,我认为这更有意义,以防标识符用于匹配应用程序的签名证书(但似乎没有! )。其他人一直在使用它来放置诸如“Beacon Example”、“Apple”、“Kitchen”之类的名称。

换句话说,我不明白为什么接收器还需要指定 region.identifier,因为它不知道它将连接到哪个广播器名称。不管我如何命名广播者,接收者总是会得到它自己定义的标识符。

【问题讨论】:

    标签: ios7 core-location cllocationmanager ibeacon


    【解决方案1】:

    CLBeaconRegion 字符串标识符与 iBeacon 传输中的 id 无关。它只是 CoreLocationManager 用于跟踪多个区域的查找键。

    您可以根据需要设置它的值,但人们经常使用包样式限定符,因为它是创建特定于应用程序的唯一字符串的简单方法。

    如果您想修改或停止对您所在区域的测距/监控,则 id 的主要用途是。通过使用相同的 id,CoreLocation 可以准确地知道您指的是哪个区域。

    在下面的示例中,我们构建了 region1,然后开始对其进行监控。然后,我们更改我们在 region2 中监视的次要标识符并开始对其进行监视。因为在 region1 和 region2 中使用了完全相同的字符串标识符,CoreLocation 知道用第二个监视区域替换第一个受监视区域。

    CLBeaconRegion *region1 = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:@"2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6"] major: 1 minor: 1 identifier: @"my.made.up.unique.identifer];
    [_locationManager startMonitoringForRegion:region1];
    CLBeaconRegion *region2 = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:@"2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6"] major: 1 minor: 2 identifier: @"my.made.up.unique.identifer];
    [_locationManager startMonitoringForRegion:region2];
    

    这最常用于停止对某个区域的监控。像这样:

    CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:@"2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6"] major: 1 minor: 1 identifier: @"another.made.up.unique.identifer];
    [_locationManager startMonitoringForRegion:region];
    ...
    [_locationManager stopMonitoringForRegion:region];
    

    在我们停止区域监控的第二个示例中,区域对象内的字符串标识符对于让 CoreLocation 停止监控该区域非常重要。

    【讨论】:

    • 谢谢大卫。现在得到了完美的回答和理解。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 2020-05-10
    • 2014-09-20
    • 2010-10-28
    • 2015-10-04
    • 2012-08-12
    相关资源
    最近更新 更多