繁体   English   中英

从Estimote iBeacon的UUID获得专业和副修

[英]Get Major and Minor from UUID of Estimote iBeacon

我刚刚得到了Estimote iBeacons包,我正在尝试做听起来很简单的事情。

我想从触发didEnterRegion方法的信标中获取“主要”和“次要” ID。 方法如下:

-(void)beaconManager:(ESTBeaconManager *)manager
      didEnterRegion:(ESTBeaconRegion *)region
{
    UILocalNotification *notification = [[UILocalNotification alloc] init];
    notification.alertBody = @"Welcome home rockstar!";
    notification.soundName = UILocalNotificationDefaultSoundName;
    [[UIApplication sharedApplication] presentLocalNotificationNow:notification];
} 

我知道Estimote信标的UUID始终是B9407F30-F5F8-466E-AFF9-25556B57FE6D。 但是,如何从触发该事件的特定信标中获取主要和次要ID? 我想将两个ID格式化为NSStrings。

任何帮助将是巨大的! 谢谢!

按照ESTBeaconRegion.h文件 ,一个ESTBeaconRegion是的子类CLBeaconRegion具有major NSNumber *属性和minor NSNumber *属性。

因此,您应该能够执行以下操作:

- (void)beaconManager:(ESTBeaconManager *)manager didEnterRegion:(ESTBeaconRegion *)region {
    NSNumber *major = region.major;
    NSNumber *minor = region.minor;
    ...
} 

主修和副修都很容易。 只需将测距和监视结合在一起。 我对这个问题的回答中提供了详细说明: iBeacon:获得主要和次要-仅查找uuid

看示例: Estimote / iOS-SDK / ProximityDemo

看来您需要:
实例化

ESTBeaconManager

然后

startRangingBeaconsInRegion

在委托方法中:

-(void)beaconManager:(ESTBeaconManager *)manager
     didRangeBeacons:(NSArray *)beacons
            inRegion:(ESTBeaconRegion *)region

获取信标数组,并为每个信标获取:

ibeacon.major
ibeacon.minor

Estimote的beacon和beacon区域类基于Apple的类,并且(我认为)的工作方式相同。)在我完成的工作中,我忽略了它们的类,并使用了CLBeacon和CLBeaconRegion。

如果您设置没有主版本号和次版本号的信标区域,则假定Estimote的类的工作方式与Apple的类相同,则任何具有匹配UUID的信标都会触发enterRegion和exitRegion通知,但主值和次要值在通知中为空白。 除非您请求并接收远程呼叫,否则您不会获得触发事件的信标的主要和次要值。

相反,如果您创建一个具有主要值或主要和次要值的信标区域,则只会收到与那些值匹配的信标的通知。 在这些情况下,您获得的region对象将包括您在创建区域时指定的主要或主要/次要值,但这些值不会改变。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM