iOS ibeacon 标识符 initWithProximityUUID:(NSUUID *)proximityUUID identifier:(NSString *)identifier?

Posted

技术标签:

【中文标题】iOS ibeacon 标识符 initWithProximityUUID:(NSUUID *)proximityUUID identifier:(NSString *)identifier?【英文标题】:iOS ibeacon identifier in initWithProximityUUID:(NSUUID *)proximityUUID identifier:(NSString *)identifier? 【发布时间】:2015-05-12 13:35:56 【问题描述】:

我正在学习以下教程:

http://www.appcoda.com/ios7-programming-ibeacons-tutorial/

但是,我没有使用 iPhone 作为信标,而是使用制造商提供的真实信标(RECO、Estimote)。

我不明白下一行中的标识符字段应该使用什么:

// Setup a new region with that UUID and same identifier as the broadcasting //beacon
self.myBeaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:uuid identifier:@"what should I use here?"];

我可以修改信标的 UUID、主要和次要值,但没有修改标识符的选项。标识符是什么?

【问题讨论】:

【参考方案1】:

该字符串标识符只是一个唯一键,您可以使用它来识别区域。 您可以在字符串中输入您想要的任何值,只要您在要替换正在测距/监控的区域或停止测距/监控时再次使用相同的值来识别区域那个地区。

以下示例将开始监控两个区域(基于两个不同的 UUID,具有两个不同的标识符“first_region”和“second_region”:

[_locationManager startMonitoringForRegion: 
    [[CLBeaconRegion alloc] initWithProximityUUID:first_uuid 
                            identifier:@"first_region"]];

[_locationManager startMonitoringForRegion: 
    [[CLBeaconRegion alloc] initWithProximityUUID:second_uuid
                            identifier:@"second_region"]];

然后您可以使用如下代码停止对 second 区域的监控:

[_locationManager startMonitoringForRegion: 
    [[CLBeaconRegion alloc] initWithProximityUUID:second_uuid
                            identifier:@"second_region"]];

上面代码行中重要的是这个“second_region”标识符字符串。要正确停止监控,它必须与您用于开始监控的字符串匹配地区。

【讨论】:

【参考方案2】:

如果你只使用一个区域,那么你可以给它任何字符串值,如下所示;有关更多信息,请参阅此帖子https://***.com/a/20566695/1351327

static NSString * const kIdentifier = @"SomeIdentifier";
static NSString * const kUUID = @"124C5678-4444-1111-2222-134556728422";

// Then create the region

NSUUID *proximityUUID = [[NSUUID alloc] initWithUUIDString:kUUID];
CLBeaconRegion *beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:proximityUUID identifier:kIdentifier];

【讨论】:

以上是关于iOS ibeacon 标识符 initWithProximityUUID:(NSUUID *)proximityUUID identifier:(NSString *)identifier?的主要内容,如果未能解决你的问题,请参考以下文章

iBeacon:CLBeaconRegion 标识符的设置?

为啥 CBPeripheral 标识符和 UUID 不同?

如何获取 iBeacon CLBeaconRegion 标识符(不是 uuid)?

ibeacons 通知警报未显示

iBeacon 每 1 分钟不断进出区域

ibeacon是啥?能实现哪些功能?