iBeacon在后台的使用场景

33
SO上与iBeacon及其背景功能相关的问题数量正在增加,但在这一点上存在一些困惑。
我一直在测试AirLocate项目。 iBeacon具有2个“功能”:区域监控和测距。
区域监控仅限于20个区域,并且可以在后台运行(侦听设备),并具有不同的代理来通知侦听应用程序(和用户)进入/退出区域 - 即使应用程序处于后台或电话已锁定。
测距仅在前台中工作,但会返回一个数组(无限?)包含所有找到的iBeacon以及它们的属性(UUID等)。
此外,那个20个区域监控是设备限制。如果用户使用地理围栏提醒,其他使用区域监控的应用程序,则会降低该数字。
那么,我们是否在说,在应用程序处于后台或手机被锁定时,我无法部署一个使用商店iBeacon向用户发送“特定商店”通知的全购物中心(100家店以上)应用程序?
我了解到广告设备(信标)也必须在前台,以便广告某个侦听设备可能“进入”的区域。那么,如果商店的业主拥有iOS设备;例如,我不能通过要求他使用他的iPhone(至少在早期)作为广告设备(信标)来节省他的钱 - 因为应用程序可能不会始终在前台?
因此,在iBeacon + MLB的情况下,单个UUID(或<20个UUID)用于应用程序可能确定入口门,然后用户是否需要解锁手机/将应用程序带到前台才能使用它(找到座位等)?
我能否将iBeacon称为需要用户最“前台”注意力的单个位置/事件(商店,公园等)功能,以实现“完整”的实际用例?
我尝试清楚地阐述用户用例,以使其实用化。请回复有更多的信息。

我们确定“此外,这20个区域的监视是设备限制。”这是一个设备限制吗?我认为这是每个应用程序的限制。 - rustylepord
这是设备限制还是每个应用程序的限制? - Oren
1个回答

26

听起来你走在正确的道路上。总体来说,你是对的,一个应用程序需要处于前台才能充分利用iBeacon的功能。以下是关于你的三个主要问题的一些具体说明:

您的商场使用案例可以在一些限制下运行。(a) 您需要通过让所有100家商店共享相同的UUID和/或major number,仅在minor number上有所不同来保护您的CLBeaconRegions。这样,您就可以设置单个CLBeaconRegion来监视多个商店。(b) 如果应用程序从看到iBeacon 1中的后台唤醒,它将无法从同一CLBeaconRegion中看到iBeacon 2中再次唤醒,除非它首先停止看到该CLBeaconRegion中的任何其他信标。 (您可以通过设置几个CLBeaconRegions并尝试分组商店,使重叠的50米蓝牙无线电范围内的相邻商店位于不同的CLBeaconRegions中,从而玩弄这一点。)
不,商店所有者不能使用他们的iPad在后台充当iBeacon--它必须在前台工作。但是他们可以使用虚拟iBeacon程序让他们的Windows或Mac计算机执行此操作。我的公司提供一个免费下载的程序:http://developer.radiusnetworks.com/ibeacon/ 在门入口使用案例中,是的,用户必须在锁定屏幕上确认通知以将应用程序带到前台。典型的实现将使用单个CLBeaconRegion(可能所有iBeacons都共享ProximityUUID甚至major)来提醒用户。

2020年4月11日更新:苹果公司宣布计划推出一种新的信标广告,可在后台运行。有关更多信息,请单击此处


感谢提供关于#1解决方法的详细说明。可以通过设置10个商店的群集,每个群集中的每个商店共享群集的唯一UUID+Major,但是群集中的每个商店都有不同的minor。然后,当应用程序进入其中一个CLBeaconRegions时,它会识别其所在的群集(使用CLRegion标识符),然后应用程序可以进行范围查找以确定该群集中可用的minors。 范围查找仍无法在后台进行,应用程序也不知道用户正在通过群集中的哪个商店(最强的信号等),直到将应用程序带到前台。正确吗? - Khaled Barazi
11
实际上,你可以在后台进行范围操作,但时间非常短暂。当iOS将您的应用程序唤醒到后台以进入/退出CLBeaconRegion时,它会运行约5秒钟,然后被挂起。您可以在此期间进行范围操作,然后使用结果来完善发送给用户的通知。 - davidgyoung
1
不,你不能这样做。请看我的答案:https://dev59.com/Mnvaa4cB1Zd3GeqPBk4h - davidgyoung
1
请查看@davidgyoung的答案更新,现在在iOS7.1上已经可以了。推荐阅读:http://beekn.net/2014/03/apple-ios-7-1-launches-major-ibeacon-improvement/ - atxe
FYI,在iOS7.1中,后台模式的行为发生了变化。 - bluefloyd8
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接