繁体   English   中英

iOS位置-iOS 8/9中的重大位置更改可以启动标准位置服务吗?

[英]iOS Location - Significant Location Change in iOS 8/9 can start standard location service?

有关iOS位置跟踪的许多问题已在此处提出,但最近Apple已更新了许多功能,因此许多答案已过时,我的问题专门针对iOS 8和9。

我对创建一个位置跟踪应用程序感兴趣,即使关闭了该应用程序,该应用程序也可以准确跟踪用户。 为此,苹果声明:

如果您使重大更改位置服务保持运行状态,并且随后您的iOS应用被暂停或终止,则当新位置数据到达时,该服务会自动唤醒您的应用。 唤醒时,该应用程序将进入后台,并且您会得到一小段时间(大约10秒)来手动重新启动位置服务并处理位置数据。

因此,我的理解是,如果您拥有所有的necesarry许可权和plist密钥,则操作系统将唤醒您的应用并允许您执行10秒钟的操作,或者它需要更多时间,可以:

如果iOS应用需要更多时间来处理位置数据,则可以使用UIApplication类的beginBackgroundTaskWithName:expirationHandler:方法请求更多后台执行时间。

现在,这表示如果我的应用需要更多时间来处理位置数据,它可能会启动一个后台任务(使用expirationHandler)来处理该任务。 在阅读有关后台任务的内容时,我读到后台任务最多可以运行10分钟

因此,我的总体问题是, 当发生重大位置更改时我的应用程序被唤醒时,是否可以启动标准位置服务并使其无限期在后台运行? 是否可以在第一个后台任务到期之前启动另一个后台任务?

编辑:苹果文档,它说:

因为它至少每15分钟唤醒一次系统和您的应用程序,即使没有发生位置更改,它也会连续运行直到您停止它为止

因此,我的想法是,如果用户从零开始启动手机并且从未打开过该应用程序,则最多15分钟(即使他们保持静止不动)之后,操作系统也会启动我的应用程序,在这种情况下,我可以启动一个后台进程,我可以开始GPS跟踪,从而获得准确的GPS位置 这种逻辑适用于OS吗?

主要问题是重大的位置更改无法用于“准确跟踪”用户。
明显的意思是1000m,因为它是基于手机信号塔的,而不是基于GPS的。 因此,当用户移至下一个GSM单元时,您的应用就会被唤醒。
这对于精确跟踪而言还不够精确。

最终,这意味着您无法在关闭应用程序时立即跟踪,这仅在运行中的应用程序或后台运行时有效。

“在阅读有关后台任务的信息时,我读到后台任务最多可以运行10分钟”

不,那不是真的。 我的应用程序在后台运行,并记录GPS位置,直到电池电量耗尽(8h +)。 (它不使用重要位置模式)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM