我正在研究iOS beacon应用程序并且遇到了一个有关规范。根据我的理解,在iOS 8+中一次最多可以启用/定义20个区域(总计 - 不是每个应用程序)。阅读之后会出现一些问题。
根据我所读到的,在涉及区域时没有“优先”级别,也没有任何东西可以指示哪些区域应该是活动的。它最近是基于哪些应用程序被访问/带到前台的?
答案 0 :(得分:2)
以下答案的斜体部分是来自Apple文档的直接引用,以及相关页面的链接。
信标区域是否与GPS /地理围栏区域不同,还是它们都被认为是相同的?它们都计入最大的20个区域吗?
The region monitoring service operates independently of any location services in use by your app, and you may use it in conjunction with any of the other services.来自“CLLocationManager类参考。”
如果某个设备在不同的应用中定义了超过20个区域,那么如何知道他们的区域是否正在被监控?
由于每个应用限制为20个地区,因此系统实际上能够监控的不仅仅是这个。考虑到上述建议,您似乎不太可能需要同时监控近20个地区的任何地方。
如果某个区域已停用/替换为与竞争应用不同的区域,是否会在停用该区域之前向该应用发送通知?
If you attempt to register a region and space is unavailable, the location manager calls the locationManager:monitoringDidFailForRegion:withError:
method of its delegate with the kCLErrorRegionMonitoringFailure
error code.请参阅位置和地图编程指南中的“区域监控和iBeacon”了解更多信息。
在删除区域之前,区域不会停用,但如果没有空间,则可能无法添加区域。在这种情况下,您会收到报价中所述的错误。
如果区域被其他应用推出后,如何重新激活该区域?
见上文。这不是先进先出的安排,但更像是音乐椅。如果没有空间,则无法首先添加您的区域。
答案 1 :(得分:1)
我不确定你在哪里阅读。如果您发布源代码,我们可以尝试进行更正或澄清。
应该注意的是,即使限制是每个应用程序,iOS设备中的蓝牙硬件辅助过滤器肯定有限制。目前还不清楚在硬件辅助达到极限并且检测速度变慢之前,设备上所有应用程序可以监控多少个区域。