Apple 限制 iOS 应用程序在后台“测距”信标的持续时间。截至 2020 年 4 月,情况确实如此,而且过去 5-6 年的情况基本没有变化。
一些澄清:
只要用户向应用程序授予“始终定位”权限,信标监控就不会在后台受到限制。但信标监控只提供“进入”和“退出”事件。 当您正在寻找的任何信标首次出现时,它会为您提供一个进入事件;当您正在寻找的最后一个信标消失时,它会为您提供一个退出事件。监控不会告诉您有关单个信标的估计距离或信号强度的任何信息。
信标测距可让您每秒获得更新,其中包含所有可见信标的列表、每个信标的信号强度和距离估计。 如果距离估计低于某个阈值,您可以轻松编写逻辑以写入数据库。
iOS 上的信标测距在后台受到限制。首先,用户必须向您的应用授予“始终定位”访问权限。即使这样,在应用程序进入后台后,或者信标在进入后台后首次出现时,您的测距时间也被限制为大约 5-10 秒。
您只需按照我的博客文章运行后台任务即可将 (3) 中提到的 5-10 秒延长至 180 秒。
如果您在 Info.plist 中声明“位置”后台模式,使用如 (4) 中所述的后台任务,并且使用 CoreLocation 请求位置更新(仅具有 3 公里分辨率的粗略位置更新),则可以进一步无限期地延长 180 秒可以很好地实现此目的,并通过关闭 GPS 来节省电池。)
(5) 的一个问题是,如果您计划将应用程序提交到 App Store,并且您没有为在后台使用位置提供明显的面向用户的好处,则可能会导致您的应用程序被拒绝。如果您确实有充分的理由,或者您打算在 App Store 之外分发应用程序(例如公司企业应用程序),那么这将很好地工作。
(5) 的第二个问题是一直进行测距可能会导致电池电量严重耗尽。您可能需要编写额外的逻辑来在不需要时停止这种持续的背景范围,以节省电池。
这无疑是令人困惑和复杂的。但最重要的是,有一些方法可以无限地确定信标的范围以满足许多用例。你只需要克服一些困难就能实现这一目标。
| 归档时间: |
|
| 查看次数: |
1499 次 |
| 最近记录: |