【问题标题】:How to start GPS tracking using push notification如何使用推送通知启动 GPS 跟踪
【发布时间】:2015-07-17 11:53:59
【问题描述】:

我在上午 8 点发送推送通知,以便在后台运行的应用程序中启动 GPS。推送通知接收,但 GPS 未开始跟踪。我怎样才能做到这一点?我正在使用以下代码。

func application(application: UIApplication,
    didReceiveRemoteNotification userInfo: [NSObject : AnyObject],
    fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {

    NSLog("userInfoComp %@",userInfo);

    var app = UIApplication.sharedApplication()    
    var  bgTask2 : UIBackgroundTaskIdentifier?

    bgTask2  = app.beginBackgroundTaskWithExpirationHandler { () -> Void in
        app.endBackgroundTask(bgTask2!)
        bgTask2 = UIBackgroundTaskInvalid
    }
    if bgTask2 == UIBackgroundTaskInvalid {
        return
    }

    PSLocationManager.sharedLocationManager().prepLocationUpdates()
    PSLocationManager.sharedLocationManager().startLocationUpdates()
}

【问题讨论】:

  • 收到通知后,您想在后台启动定位服务吗?
  • @saurabh 是的。这是旅行跟踪应用程序。

标签: ios cocoa ios8 gps core-location


【解决方案1】:

当您的应用处于后台模式时,您无法启动定位服务。当您的应用在用户许可的情况下处于活动状态时,您需要使用 startMonitoringSignificantLocationChanges(即使用户没有使用该应用也可以跟踪他)以在后台模式下获取位置更新。

如果用户不是静止不动的,即使用户每 5 分钟终止应用一次,您也会获得位置更新。

如果您的应用在后台,您可能会使用 startLocationUpdates 获取位置更新,但即使 3-4 个应用在后台操作系统可能会停止更新位置,它也不可靠。

【讨论】:

    猜你喜欢
    • 2013-11-10
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多