位置后台服务在Swift2中不工作



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

在我的应用程序委托文件中,我请求用户在他们使用应用程序时使用他们的位置。这很好,我可以获得他们的当前位置。在我得到它们的初始位置后,我停止更新位置。太好了。用户可以点击一个按钮开始更新位置。

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

:

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

在我的应用程序的上一个版本(在Swift 2之前),这是完美的工作。即使应用程序在后台运行,我也能看到位置被跟踪。

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

如果其他人有同样的问题,我已经更新了我的iPhone到iOS9,所以我需要添加

locationManager.allowsBackgroundLocationUpdate = true 

以下为我工作,请注意allowsBackgroundLocationUpdates是复数

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

最新更新