位置后台服务无法在Swift2

时间:2015-10-01 00:13:09

标签: swift2

我的应用程序中有一些奇怪的行为。

在我的应用委托文件中,我要求用户在使用应用时允许使用其位置。这很好,我可以得到他们当前的位置。在我得到他们的初始位置后,我停止更新位置。大。用户可以点击按钮开始更新位置。

如果应用程序位于前台,我可以看到每秒都会将位置添加到我的字典中(稍后我会将其更改为distanceFilter 10)。如果用户将应用程序放入后台位置服务停止,我就不会看到屏幕顶部的蓝色栏。

我有:

  • 启用位置更新的后台模式
  • NSLocationWhenInUseUsageDescription设置(我能够成功请求用户许可)
  • 使用startUpdatingLocation()
  • 启动位置更新
  • 尝试将应用设置为始终跟踪位置(相同结果)
  • 从手机中删除了应用并重新安装

在我的应用程序的早期版本中(在Swift 2之前),这非常有效。即使应用程序在后台,我也能看到跟踪位置。

我在iPhone上测试而不是模拟器。

2 个答案:

答案 0 :(得分:4)

如果其他人有同样的问题,我已将iPhone更新为iOS9,因此我需要添加

public class lab4 {

public static void main(String[] args) throws IOException {

    InputStreamReader isr = new InputStreamReader (System.in);
    BufferedReader br = new BufferedReader (isr);

        ArrayList<String> studentInfo;
        studentInfo = new ArrayList<String>();

        String  students = br.readLine();       
        String [] answers = students.split ("\\s+"); 

        while(!students.equalsIgnoreCase("zzzz")){           
           students = br.readLine();                                                        
            studentInfo.add(students);
        }

        String [] s0 = studentInfo.get(0).split ("\\s+");

到我的位置经理。

答案 1 :(得分:0)

以下对我有用,请注意allowBackgroundLocationUpdates是复数。

locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.allowsBackgroundLocationUpdates = true