当两个应用监控同一个iBeacon区域时会发生什么?

时间:2014-05-22 11:49:45

标签: ios ibeacon

从iOS7.1开始,可以监控iBeacon区域,而无需在前台或后台打开应用程序。虽然这更像是一个实验室情况而不是现实世界的问题,但我想知道当两个iOS应用程序都注册在后台监控相同 iBeacon区域时会发生什么。我们可以说,两个应用都设置为在输入特定区域时触发本地通知...

在这种情况下是否有任何预期/记录的行为?例如。 1)两个应用程序都会被触发? 2)只会触发注册的最后一个应用程序? 3)等。

5 个答案:

答案 0 :(得分:9)

这两个应用都会被触发。我不相信Apple文档中明确说明了这一点,但是根据设计,所有应用都是沙盒化的,并且除非文档另有说明,否则预计会独立运行。

我可以确认这是它的经验,因为我的公司制作了大量的iBeacon应用程序,并且它们最初是为Radius Networks的信标使用相同的默认UUID / major / minor。因此,当我在其中一个信标附近打开我的iPhone时,我会收到多个通知,一个用于同一地区的每个应用监控。

答案 1 :(得分:3)

两个应用都将被触发。我家里有一些信标,如果我进入或离开时不关闭蓝牙,我会为每个正在处理的应用程序收到一个通知......:p

答案 2 :(得分:3)

我可以确认Alexander Vasenin所说的内容。我在iOS 9.0.2上测试过它。

如果你的情况允许,你可以绕过"通过将您的某个应用设置为使用更多" strict"区域,例如:

  1. app:CLBeaconRegion *beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:uuid identifier:@"identifier"];

  2. app:CLBeaconRegion *beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:uuid major:69 identifier:@"identifier"];

答案 3 :(得分:2)

@Alexander Vasenin:我可以证实这一点。 似乎有一个ios 8.3问题,其中没有2个应用程序可以监控SAME区域。在这种情况下,只有一个应用程序获得响应。

答案 4 :(得分:1)

虽然一般通过多个应用程序监控相同的iBeacon区域运行良好,但昨天我们遇到了麻烦。我们的两台设备拒绝拨打以下任何回调:

- locationManager:didDetermineState:forRegion:
- locationManager:didEnterRegion:
- locationManager:didExitRegion:
- locationManager:monitoringDidFailForRegion:withError:

而其他两个人完美无瑕地工作。我们花了几个小时搞清楚什么是错的,但问题只有在我们删除了那个监控相同的概念验证应用程序之后才解决(或者几乎相同,我不确定关于这个)来自两个设备的iBeacon区域。

有趣的是,在我自己的设备上,我也有那个旧的概念验证应用程序,两个应用程序都可以完美运行。