ios - Reminders 应用程序如何知道只在提醒当天跟踪我的位置?

标签 ios core-location uilocalnotification geofencing

在 iOS 5 引入的提醒应用程序中,您可以设置地理围栏,因此当您靠近某个地址时,您的提醒就会提醒。还可以为特定日期配置基于位置的提醒。 Apple 在处理基于位置和时间的提醒方面非常高效,因为他们直到提醒之日才开始跟踪您的位置。

例子:

今天是星期一,我设置了星期三的提醒,当我回到家时提醒我倒垃圾。

如果您注意的话,您会注意到电池生命周期指示器旁边的位置服务指示器(紫色三角形)直到周三午夜钟声才会出现。

我很好奇是否有一个公共(public) API 允许您的应用程序响应这样的时间变化,或者他们是否正在使用一些私有(private) API。

我找到了 UIApplicationSignificantTimeChangeNotificationapplicationSignificantTimeChange:但在文档中说明

If your application is currently suspended, this message is queued until your application returns to the foreground, at which point it is delivered.

所以这让我相信这是行不通的。

我的另一个想法是使用 UILocalNotification 并在您感兴趣的时间设置通知,并在触发该通知时执行代码以启用位置服务。由于我缺乏 UILocationNotification 的经验但是我知道是否可以执行这样的代码。

有人知道如何实现吗?

最佳答案

您可以设置本地通知(远程通知),其中包含在您想要激活功能的那一天激活地理围栏的信息。

这会在您的 appDelegate 的“didReceiveLocalNotification”方法中唤醒您的应用程序,并将您的代码地理围栏放在那里。

关于ios - Reminders 应用程序如何知道只在提醒当天跟踪我的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10691820/

相关文章:

ios - 带有 iphone 的 Bot Framework SMS channel - 短信不起作用

ios - UIView 及其 subview 上的 UITapGestureRecognizer 在 subview 被点击时一起响应

ios - 位置服务在 iOS 8 中进入 “Inactive” 状态

ios - 如何使用 iOS 8 弃用设置每周重复的 UILocalNotifications?

ios4 - 来自锁屏iphone时在didreceivelocalnotification上重绘GUI

iOS: bundle 格式无法识别、无效或不合适

iphone - 创建协议(protocol)后访问 UIPageViewController 的委托(delegate)方法

ios - 使用模拟器测试自定义位置

ios - SWIFT:核心位置返回 nil - 如何调用 didUpdateLocations?

ios - 有没有办法让用户选择本地通知的声音?