Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在后台运行的应用程序中自动打开/关闭GPS跟踪_Ios_Iphone_Gps_Core Location_Cllocationmanager - Fatal编程技术网

Ios 在后台运行的应用程序中自动打开/关闭GPS跟踪

Ios 在后台运行的应用程序中自动打开/关闭GPS跟踪,ios,iphone,gps,core-location,cllocationmanager,Ios,Iphone,Gps,Core Location,Cllocationmanager,当应用程序在后台运行时,如何停止和启动GPS跟踪。我可以在应用程序中停止跟踪,但无法启动应用程序。我正在寻找以下问题的答案 1.是否可以使用推送通知静默启动GPS跟踪。 2.我尝试使用本地通知,但需要用户交互才能启动流程。有什么最好的方法可以做到这一点吗 我的问题:最初我可以开始跟踪用户位置,并在后台一段时间后停止跟踪。我想第二天开始追踪。我正在寻找一种在后台开始跟踪的方法 实际上,我的应用程序基本上就是位置跟踪应用程序。如果启动应用程序,应用程序将开始跟踪,直到晚上8:00(自动停止)。第二天

当应用程序在后台运行时,如何停止和启动GPS跟踪。我可以在应用程序中停止跟踪,但无法启动应用程序。我正在寻找以下问题的答案

1.是否可以使用推送通知静默启动GPS跟踪。 2.我尝试使用本地通知,但需要用户交互才能启动流程。有什么最好的方法可以做到这一点吗

我的问题:最初我可以开始跟踪用户位置,并在后台一段时间后停止跟踪。我想第二天开始追踪。我正在寻找一种在后台开始跟踪的方法

实际上,我的应用程序基本上就是位置跟踪应用程序。如果启动应用程序,应用程序将开始跟踪,直到晚上8:00(自动停止)。第二天早上8:00再次开始跟踪。

您尝试过这个吗

-(void)applicationDidEnterBackground {
  [self.locationManager stopUpdatingLocation];

  UIApplication* app = [UIApplication sharedApplication];

  bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
    [app endBackgroundTask:bgTask];
    bgTask = UIBackgroundTaskInvalid;
  }];

  self.timer = [NSTimer scheduledTimerWithTimeInterval:intervalBackgroundUpdate
                                                target:self.locationManager
                                              selector:@selector(startUpdatingLocation)
                                              userInfo:nil
                                               repeats:YES];
}

将intervalBackground Update设置为1天

如果在后台运行应用程序时启动位置更新,则这些更新的持续时间不会超过iOS为您的后台任务授予的任何时间(当前为180秒)

必须在应用程序处于活动状态时启动位置更新,这样做可以确保即使在应用程序进入后台后,更新仍会持续进行,前提是您正确配置了应用程序后台模式-请参阅Xcode中的功能/后台模式/位置更新

即使如此,如果你的应用程序被终止,新位置事件的传递也会完全停止

如果要临时禁止标准位置更新,请使用


当更新延迟时,GPS接收器仍然通电,但不会发生CPU活动,因为接收器不会触发事件。我自己没有在这种模式下测试功耗,但人们提到每小时约2%的电池耗电量。

可能这就是你想要的[在后台运行的应用程序中自动打开/关闭GPS跟踪][1][1]:@AngelVasa我可以更新位置并完美地停止跟踪。但是第二天无法重新启用跟踪。我需要准确地在明天早上8点更新位置。这样我就可以设置fireDate来执行这个计时器。请注意,位置更新将在今天停止,如果您没有犯任何其他错误,8pmIt应该可以工作;)@iTroyd23实际上我的应用程序基本上就是位置跟踪应用程序。如果启动应用程序,应用程序将开始跟踪,直到晚上8:00(自动停止)。第二天早上8:00再次开始跟踪。