CLLocationManager委托方法未在后台调用

时间:2016-02-03 08:24:37

标签: ios objective-c iphone cocoa cllocationmanager

我正在构建一个应用程序来检查用户是否在我的客户的商店附近,如果有,它会向他发送通知。

我希望应用程序也在后台检查它。

我已将此行添加到我的df = pd.read_csv(filename)文件中:

image

这是我的代码:

AppDelegate.m

info.plist

MonitorLocationViewController.m

-(BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self configureLocationManager];
[self.locationManager startUpdatingLocation];

return YES;
}
-(void)configureLocationManager
{
    //Initializing locationManager
    self.locationManager=[[CLLocationManager alloc] init];
    //setting "locationManager"'s(CLLocationManager) delegate to "self"
    self.locationManager.delegate=self.monitorLocationVC;
    //Setting "locationManager"'s(CLLocationManager)'s distance filter to none
    //self.locationManager.distanceFilter=kCLDistanceFilterNone;
    //Setting "locationManager"'s(CLLocationManager)'s activityType to navigation
    self.locationManager.activityType=CLActivityTypeAutomotiveNavigation;
    //setting "locationManager"'s(CLLocationManager) desiredAccuracy to "best"
    self.locationManager.desiredAccuracy=kCLLocationAccuracyBestForNavigation;
    //If OS version is 9 or above - setting "allowsBackgroundLocationUpdates" to YES
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9) {
        self.locationManager.allowsBackgroundLocationUpdates = YES;
    }
}

有人有想法吗?谢谢!

2 个答案:

答案 0 :(得分:1)

后台位置更新

我建议您仔细阅读与startMonitoringSignificantLocationChanges方法相关的讨论(您必须使用此方法来解决此问题)。请注意,您可以通过调用 stopMonitoringSignificantLocationChanges 强制执行新的更新,然后再次调用start ...方法。您还需要监视locationManager中的时间戳:didUpdateLocations方法。

Apple详细介绍了当应用在后台时获取更新所需的步骤。基本上,您必须在应用委托方法中拦截一个键。此SO question包含示例代码。

但在您跳转到代码之前,请按照建议查看讨论,因为它会让您更清楚地了解如何掌握此行为。与往常一样,您也总是希望监视讨论中提到的失败委托方法。

Apple Documentation

significantlocationchanges

Nota Bene

Apple发布了关于位置更新发送到设备的频率限制的非常重要的说明。为节省电量,他们尝试限制更新次数,直到设备移动500米。您的测试应考虑这些限制。

500meters

<强>资源

如需更多补充信息,请注意以下SO问题的答案:

#1 #2

答案 1 :(得分:0)

很遗憾,由于NDA,我无法发布用于地理围栏的代码,但本文可以帮助您实现所需目标:https://corgitoergosum.net/2013/01/12/geo-fencing-in-timetraveler-v2-part-i-of-3/