Я пишу (в Swift) приложение iOS 9, которому нужны обновления местоположения, в том числе в фоновом режиме. Проблема в том, что я только получаю обновления местоположения на переднем плане. Я думаю, что все сделано правильно:Приложение ios 9, не сообщающее местоположение в фоновом режиме
В info.plist:
указано значение для NSLocationAlwaysUsageDescription.
Указывает значение для NSLocationUsageDescription.
Указывает значение NSLocationWhenInUseUsageDescription.
Включено «местоположение» в UIBackgroundModes.
Включено "GPS" и "местоположение-услуги" в UIRequiredDeviceCapabilities
Started менеджер местоположения следующим образом:
let locationManager = CLLocationManager() locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters locationManager.distanceFilter = 250.0 locationManager.allowsBackgroundLocationUpdates = true locationManager.startUpdatingLocation()
Я также проверил, что locationManager.pausesLocationUpdatesAutomatically является ложным.
я получаю не геоданных в то время как приложение не на переднем плане. Единственный раз, когда я получаю обновления местоположения, - это если я приношу приложение на передний план, и даже тогда, не все время.
Любая идея, что происходит не так? Или мои ожидания неверны?
Я видел, как вы установили фильтр расстояния до 250. Попробовали ли вы меньшее значение/Прошли ли вы достаточно далеко? – Raptor
Точность местоположения kCLLocationAccuracyHundredMeters не будет использовать GPS, поэтому вам, вероятно, нужно будет перемещаться на достаточное расстояние, чтобы получать какие-либо обновления; возможно, порядка 500-600 м. Где вы назначаете своего менеджера местоположений? Является ли это свойством AppDelegate? Если вам не нужны быстрые обновления или точное местоположение, вам может быть выгоднее использовать значительный мониторинг изменений местоположения. – Paulw11
Я не вижу абсолютно никаких обновлений местоположения, даже после вождения 10-30 миль. Обновления происходят только тогда, когда я приношу приложение на передний план. –