ios - 应用程序在后台时的信标行为

标签 ios location ibeacon

免责声明 - 我是服务器端工程师,所以我的知识有限。

问题 - 如果我的 ios 应用程序在后台,区域监控是否允许在输入初始区域后发生多个事件?

用例 - 应用程序在后台运行,用户进入部署了多个信标的设施。我希望该应用程序在他们在该地区时定期调用服务电话,当他们靠近其中一个信标时调用一次。即“我现在接近信标 1”,然后是“我现在接近信标 2”。那可行吗?

注意 - 我不需要需要对用户进行三角测量。

最佳答案

是的,当应用程序处于后台时,可以根据与信标的距离变化进行服务调用。定期更新信标的距离称为“测距”,它适用于 iOS 和 Android 平台。但是在 iOS 上有一些严重的限制。

Android - 后台测距在 Android 平台上很简单。使用 Android Beacon Library ,您可以在后台继续测距信标,并在估计距离发生变化时调用服务电话。该库允许一个可配置的时间间隔来设置信标在后台的排列频率(默认情况下每 5 分钟一次以节省电池电量)。但这可以增加到您想要的任何间隔。

iOS - 背景范围受到 iOS 的严格限制以节省电量。 默认情况下,您只能在后台搜索信标 10 秒。当您的应用程序从前台移动到后台时,这个 10 秒计时器开始计时。当使用监控 API 检测到新的信标区域时,该应用程序还可以暂时唤醒到后台。这将重新启动 10 秒计时器。

10 秒过后,应用程序在 iOS 上暂停,这意味着测距停止并且任何服务调用都不会完成。好消息是,您可以通过向操作系统提出特殊请求,将此后台执行时间从 10 秒延长到 180 秒。该请求在下面的链接中进行了描述。

当 180 秒不够时,您可以通过设计信标标识符来获得更多时间,以便通过监控 API 为您提供多个后台触发器。当您在空间中四处移动时,您可以通过检测具有不同 ProximityUUID/主要组合的信标来获得新的背景监控触发器(在背景测距时重新启动时钟)。为此,您必须将这些具有这些不同标识符组合的信标放置在非重叠 radio 范围内,以便在您在空间中移动时获得新的进入/退出监控触发器。您还必须注册这些不同的信标区域以使用操作系统进行监控,以便获得后台触发器。

您可以在此处阅读有关这些技术的更多信息:http://developer.radiusnetworks.com/2014/11/13/extending-background-ranging-on-ios.html

关于ios - 应用程序在后台时的信标行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30683191/

相关文章:

ios - 当 iBeacon 范围为 "Immediate"或 "near"时如何通知用户?

ios - 如何让基于 CocoaPods 的项目在模拟器中运行?

facebook - 如何使用 Facebook API 获取在某个地方拍摄的所有照片

iphone - 适用于 iPad 的限制应用程序

google-maps - MapsActivity 无法转换为 com.google.android.gms.location.LocationListener

php - 我需要帮助完成这个 3 级动态下拉列表

swift - iOS 无法正确检测到 pibeacon 信号

android - Ble 扫描回调只被调用几次然后停止

ios - 每次重新加载 tableview 部分时,UITableView 都不会向上滚动

ios - Xcode swift - 后台模式 - 锁定时 AVPlayer 中的音频