Ios7 iBeacon在后台-用例

Ios7 iBeacon在后台-用例,ios7,core-bluetooth,bluetooth-lowenergy,ibeacon,Ios7,Core Bluetooth,Bluetooth Lowenergy,Ibeacon,与iBeacon及其后台功能相关的SO问题越来越多,在这一点上存在一些混乱。 我一直在测试空运项目 iBeacon有2个“功能”:区域监控和测距 区域监控限于20个区域,可在后台(监听设备)运行,并有不同的代理通知监听应用程序(和用户)进入/退出该区域-即使应用程序在后台或手机被锁定 测距仅在前台工作,但将返回(到侦听设备)找到的所有iBeacon及其属性(UUID等)的数组(无限?) 此外,20个区域的监控是设备限制。如果用户正在使用地理围栏提醒,则使用区域监控的其他应用程序;这将降低这个数字

与iBeacon及其后台功能相关的SO问题越来越多,在这一点上存在一些混乱。 我一直在测试空运项目

iBeacon有2个“功能”:区域监控和测距

区域监控限于20个区域,可在后台(监听设备)运行,并有不同的代理通知监听应用程序(和用户)进入/退出该区域-即使应用程序在后台或手机被锁定

测距仅在前台工作,但将返回(到侦听设备)找到的所有iBeacon及其属性(UUID等)的数组(无限?)

此外,20个区域的监控是设备限制。如果用户正在使用地理围栏提醒,则使用区域监控的其他应用程序;这将降低这个数字

  • 那么,我们是说,我不能部署一个商场范围(100家商店+)的应用程序,使用商店iBeacons向用户发送“特定于商店”的通知,而应用程序处于后台或手机处于锁定状态

  • 我推测,广告设备(信标)必须位于前台,以便为收听设备可以“进入”的区域做广告。我们的意思是,如果店主拥有iOS设备;例如,我不能要求他使用iPhone(至少在早期)作为广告设备(灯塔)来为他省钱,因为该应用程序可能并不总是在前台


  • 因此,在iBeacon+MLB的情况下,单个UUID(或听起来你的思路是正确的。一般来说,你是正确的,应用程序需要在前台才能充分利用iBeacon功能。关于三个主要问题的一些细节:

  • 你的购物中心用例可能会有一些限制。(a)你必须保留你的CLBeaconRegion,让许多或所有100家商店共享相同的UUID和/或主要编号,只在次要编号上有所不同。这允许你设置一个CLBeaconRegion来监视多个。(b)如果应用程序在看到iBeacon 1后被唤醒到后台,则它将无法在同一个CLBeaconRegion中再次从看到iBeacon 2后醒来,除非它首先停止看到该CLBeaconRegion中的任何其他信标。(您可以通过设置多个CLBeaconRegions并尝试组存储,使重叠的50米蓝牙无线电范围内的相邻存储区位于不同的CLBeaconRegions,来实现这一点。)

  • 不,店主不能在后台使用iPad作为iBeacon——它必须在前台才能工作。但他们可以让Windows或Mac电脑使用虚拟iBeacon程序来实现这一点。我的公司提供了一个免费下载的程序:

  • 在door entry用例中,是的,用户必须确认锁屏上的通知,才能将应用程序带到前台。典型的实现是使用单个CLBeaconRegion(可能所有iBeacon共享一个ProximityUID,甚至可能是一个主要的)来提醒用户


  • 编辑2020年11月4日:苹果公司宣布了一项新的灯塔广告计划,该广告将在后台运行。有关更多信息,请参阅。

    Tx以获取详细信息。关于#1解决方法:设置10个商店的集群,其中每个商店共享集群中唯一的UUID+主调,但该集群中的每个商店都有不同的副调。然后什么时候应用程序进入其中一个CLBeaconRegion,它识别它已进入的群集(使用CLRegion标识符),然后应用程序可以进行测距,以确定该群集中可用的子群集。虽然测距仍不能在后台进行,但应用程序不知道用户正在通过该群集中的哪个存储(最强信号等)直到应用程序被带到前台。对吗?实际上,你可以在后台进行测距,但只能进行非常短暂的测距。当iOS在进入/退出CLBeaconRegion时将你的应用程序唤醒到后台时,它将在暂停前运行约5秒。你可以在这段时间内进行测距,然后使用结果优化发送给用户的通知用户。@davidgyoung刚刚看到你有用的博文,谢谢!我想知道当应用程序根本没有运行(即被杀死)时,你是否能够进入/退出。不,你不能这样做。请参阅我的答案:查看@davidgyoung对该答案的更新,现在可以在iOS7.1上推荐阅读:我们确定“此外,20个区域的监控是一个设备限制。”这是一个设备限制??我认为这是每个应用程序的限制。是设备限制还是每个应用程序的限制?