基于位置的应用程序无法在后台 iPhone 中运行

Posted

技术标签:

【中文标题】基于位置的应用程序无法在后台 iPhone 中运行【英文标题】:Location based app not working in background iPhone 【发布时间】:2012-03-17 05:40:37 【问题描述】:

我正在开发一个使用定位服务的应用程序。

基本上,该应用程序会显示,如果您在哪个地方接到任何未接电话。

为此,我使用了核心位置和核心电话框架。但是当我测试应用程序时,定位服务无法在后台运行。 我已将此代码用于完成启动。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]; 

    if (localNotif)
        application.applicationIconBadgeNumber = localNotif.applicationIconBadgeNumber-1; 
    locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self;
    locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
    locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 100 m
    [locationManager startUpdatingLocation];
    [self callinbackground];

    [self.window makeKeyAndVisible];
    return YES;

应用程序进入后台,然后我从这个链接写下代码:- code

但是当应用程序进入后台时,则无法正常工作。我是怎么解决的?

提前谢谢...

【问题讨论】:

如果您想在 ios 7 的后台获取位置更新,您可以在这里尝试这个解决方案:***.com/questions/18946881/… 如果您有任何问题,欢迎您在这里加入我们的讨论:@ 987654323@ 【参考方案1】:

试试这个:- 在 info.plist 中添加密钥

key>UIBackgroundModes</key>
    <array>
        <string>location</string>
    </array>

【讨论】:

以上是关于基于位置的应用程序无法在后台 iPhone 中运行的主要内容,如果未能解决你的问题,请参考以下文章

iphone - NSTimers 在后台

如何在iphone的后台获取位置[关闭]

iphone 锁定按钮和正在运行的应用程序

关于在 iPhone 应用程序在后台时确定关闭位置的建议

iPhone在后台运行周期性进程 - 电池优化方式

当 iphone 在后台时使用 CLLocationManager 将位置发送到服务器