【问题标题】:How does the Reminders app know to only track my location on the day of the reminder?提醒应用程序如何知道仅在提醒当天跟踪我的位置?
【发布时间】:2012-05-28 08:11:30
【问题描述】:

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

例子:

今天是星期一,我设置了一个星期三的提醒,提醒我什么时候回家倒垃圾。

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

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

我能够找到UIApplicationSignificantTimeChangeNotificationapplicationSignificantTimeChange:,但文档中指出

如果您的应用程序当前处于挂起状态,则此消息将排队等待您的应用程序返回到前台,此时它会被传递。

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

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

有谁知道如何做到这一点?

【问题讨论】:

  • LocalNotifications 无法做到这一点,此通知仅显示带有指定消息的弹出窗口。

标签: ios core-location uilocalnotification geofencing


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多