繁体   English   中英

位置更新无法在iPhone4s和iPhone5的后台模式下的iOS 7.0中运行,而iPhone处于理想状态

[英]Location update not working in background mode iOS 7.0 in iPhone4s and iPhone5 while iPhone in ideal

我正在使用一个位置管理器服务来开发一个跟踪应用程序,

设置期望的精度= kCLLocationAccuracyNearestTenMeters

而distanceFilter = 60.0。

我想提供背景支持。 为此我

设置应用注册以进行位置更新,

应用程序从网络下载内容

在我的info.plist中。 我把

[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];

此代码在didFinishLaunchingWithOptions方法中。

我也使用此方法来调用startUpdatingLocation位置管理器方法

- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler

这一切都可以在iPhone 7的iOS 7中使用

但是我当时在设备中处于理想状态时,该设备在iPhone4S和iPhone5中还有另外两个设备,因此导航符号消失了,服务器上的位置数据也没有更新。

当电话是理想的,当我启动我的应用程序时,它不是在后台运行,而是从登录屏幕启动。

因此后台位置更新不适用于具有iOS7的iPhone5和iPhone4S。

请为此提供解决方案。

如果我没有获得更新的位置,我的应用程序将用于跟踪,因此它没有用。

您可以在AppDelegate.m中添加此方法

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
        NSLog(@"ending background task");
        [[UIApplication sharedApplication] endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    }];

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

您可以通过以下链接获取帮助: 从后台任务启动iOS 7中的位置管理器

每隔5分钟更新一次您的位置信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM