接收iBeacon与相同的uuid和不同的主要,次要的背景

时间:2014-06-12 15:16:53

标签: ios iphone objective-c bluetooth ibeacon

我想在设备在后台输入一些信标范围时显示LocalNotification。 当设备进入Beacon范围:A(UUID:xxx major:1 minor:1)时,LocalNotification正确显示,但此后,当设备进入Beacon范围:B(UUID:xxx major:2 minor:2)时,没啥事儿。 当设备已经在后台状态下进入相同UUID的范围时,didDetermineState不会调用吗? 任何帮助都会得到满足。

1 个答案:

答案 0 :(得分:3)

我的猜测是,您正在监控单个CLBeaconRegion而未指定所有标识符。如果你这样做:

CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:uuid major:major identifier:@"myRegion"]]];

或者这个:

CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:uuid identifier:@"myRegion"]];

然后iOS只会在看到 信标时通知您一次。通过不在您所在的地区指定未成年人,那么您告诉iOS将所有信标视为单个区域的一部分,而不管其次要值是多少。

如果您想为每个信标获取单独的状态通知,请构建两个不同的区域,如下所示:

CLBeaconRegion *regionForBeaconA = [[CLBeaconRegion alloc] initWithProximityUUID:uuid major:major minor:1 identifier:@"myRegionForBeaconA"]];

CLBeaconRegion *regionForBeaconB = [[CLBeaconRegion alloc] initWithProximityUUID:uuid major:major minor:2 identifier:@"myRegionForBeaconB"]];

并开始监控这两个地区。然后,您将获得Beacon A和Beacon B的不同回调。