簡體   English   中英

應用程序被終止/終止時的連續位置詳細信息

[英]Continuous location details when app is killed/Terminated

當應用程序被終止/終止時,如何獲取連續的位置詳細信息? startMonitoringSignificantLocationChanges方法在500米后觸發didUpdateLocations委托方法。 但是我想以殺死模式每10米更新一次位置。 或者我想在后台自動重新啟動應用程序並在后台啟動位置更新。目前,我在后台有工作代碼。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.

    if ([launchOptions objectForKey:UIApplicationLaunchOptionsLocationKey]) {
        [[LocationManager sharedLocarionManager] updateAccuracy:YES];
        [[LocationManager sharedLocarionManager].locationManager requestAlwaysAuthorization];
        [[LocationManager sharedLocarionManager].locationManager stopUpdatingLocation];
        [[LocationManager sharedLocarionManager].locationManager startUpdatingLocation];
        [[LocationManager sharedLocarionManager].locationManager stopMonitoringSignificantLocationChanges];
        [[LocationManager sharedLocarionManager].locationManager startMonitoringSignificantLocationChanges];

    }
    return YES;
}

LocationManager.m

- (id)init {
    self = [super init];
    if(self != nil) {
        self.locationManager = [[CLLocationManager alloc] init];
        self.locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
        self.locationManager.distanceFilter = 100; // meters
        self.locationManager.delegate = self;
    }

    return self;
}

-(void)updateAccuracy:(BOOL)trackingAccuracy {

    if (trackingAccuracy) {
        self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
        self.locationManager.distanceFilter =  10.0 ; // meters
        self.locationManager.allowsBackgroundLocationUpdates = YES;
    } else {
        self.locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
        self.locationManager.distanceFilter = 100; // meters
    }

    [ self.locationManager startUpdatingLocation];
    [self.locationManager startMonitoringSignificantLocationChanges];
}

有一個解決方法。 盡管您的應用程序被殺死時無法獲得連續的位置,但是您可以通過服務器向用戶發送靜默推送通知,以獲取有關其位置的更新。 當應用程序收到靜默推送通知時,您將獲得30秒的窗口。 在短時間內,您必須執行任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM