然而,根据这篇文章,注册重大更改位置的应用程序只会收到粗略的位置更新(如果设备从一个小区移动到另一个小区)
If background applications can't launch automatically how does Cardcase launch on a location change?
也可以使用startMonitoringForRegion:desiredAccuracy:,并在发生位置更改时唤醒应用程序。
假设desiredAccuracy可以相当好,那么这是否意味着它是一种后门方式,可以注册位置的重大更改,但粒度很细?因此,这是应用商店允许的吗?
发布于 2012-01-05 00:09:35
不怎么有意思。您必须指定一个特定的区域,只有当区域进入/退出时,您才会收到通知。
这与提醒应用程序用于发送提醒的机制相同,它们在位置周围创建一个区域,例如工作,并注册区域通知。
虽然理论上可以创建许多彼此相邻的小区域,但它实际上并不是为此而设计的,并且可能会导致问题。
发布于 2012-01-05 00:54:54
在我的测试中,我观察到区域监控有时不是很准确,也就是说,如果我开车经过一个区域,我可能得不到任何进入或离开该区域的迹象。(在引擎盖下,它可能使用类似于重大位置更改的东西)
此外,这里的desiredAccuracy实际上是不应该生成通知的区域周围的缓冲区(以米为单位),这是为了防止在区域边缘时出现多个通知。
https://stackoverflow.com/questions/8729901
复制相似问题