有关iBeacon及其背景功能的SO问题越来越多,对此有些困惑。
我一直在测试AirLocate项目。
iBeacon具有2种“功能”:区域监视和测距。
区域监视仅限于20个区域,并且可以在(侦听设备的)后台运行,并且具有不同的委托(delegate)来通知侦听应用(和用户)该区域的进入/退出-即使应用处于后台或电话被锁定。
测距仅在前景中起作用,但将(找到的所有iBeacon及其属性(UUID等)的数组(无限?)返回(到监听设备)。
另外,监视20个区域是设备限制。如果用户使用地理围栏提醒,则其他使用区域监视的应用程序;这将降低该数字。
所以我们是说我无法部署一个购物中心范围内(超过100个商店)的应用程序,该应用程序在后台或手机被锁定时使用商店iBeacons向用户发送“商店特定”通知? 我收集到广告设备(信标)也必须在前台,以广告收听设备可以“进入”的区域。我们是说,如果商店的拥有者拥有iOS设备;例如,我不能要求他(至少在早期)将他的iPhone用作广告设备(信标)来节省他的钱-因为该应用程序可能不会一直处于前台? 因此,在iBeacon + MLB的情况下,应用使用单个UUID(或
然后,我可以将iBeacon称为单个位置/事件(商店,公园等)功能,要求用户最关注“前景”以拥有“完整”的实际用例吗?
我试图阐明用户案例以使其实用。请回答"is"或“否”。 听起来您走在正确的轨道上。通常,您认为应用程序必须位于前台才能完全使用iBeacon功能是正确的。有关您的三个主要问题的一些具体说明:
您的购物中心用例可以有两个限制。 (a)您必须通过让许多或全部100个商店共享相同的UUID和/或主号码(仅在次要号码上有所不同)来保存CLBeaconRegions。这使您可以设置一个CLBeaconRegion来监视多个。 (b)如果应用程序从看到iBeacon 1唤醒进入后台,它将无法从在同一CLBeaconRegion中看到iBeacon 2再次唤醒,除非它首先停止在该CLBeaconRegion中看到任何其他信标。 (您可以通过设置几个CLBeaconRegions并尝试分组存储来进行一些游戏,以便重叠的50米蓝牙 radio 范围中的相邻存储在不同的CLBeaconRegions中。)不,商店老板不能在后台使用其iPad作为iBeacon,它必须位于前台才能工作。但是他们可以让Windows或Mac计算机使用虚拟iBeacon程序执行此操作。我公司提供了一个免费下载的文件:http://developer.radiusnetworks.com/ibeacon/ 在门禁使用案例中,是的,用户将必须在锁定屏幕上确认该通知才能将应用程序置于前台。一个典型的实现将使用单个CLBeaconRegion(可能与所有共享一个ProximityUUID甚至是主要的iBeacon的iBeacon一起)来提醒用户。
编辑4/11/2020:苹果宣布了新的信标广告计划,该广告将在后台运行。有关更多信息,请参见here。