2016-06-01 16 views
2

Ich bin mir nicht sicher, ob dies ein Fehler oder eine Art von Konfigurationsproblem ist, aber (ich stelle jede Option in info.plist, locationManager.allowsBackgroundLocationUpdates = true und jede andere Spitze fand ich im Internet und das Problem weiterhin besteht)ios (swift) Standort im Hintergrund (ios 9.3.2) funktioniert nicht mehr

Locationmanager (Manager: CLLocationManager, didUpdateLocations Orte: [CLLocation]) { }

stoppt den Standort nach einiger (random) Zeit aktualisiert, wenn im Hintergrund (die App geschlossen). Auf einem Iphone 4s ios 8.4 ist dieses Problem nicht vorhanden.

Vielleicht hat jemand anderes dieses Problem zusammengebrochen? Dank

+1

Können Sie uns Ihren Code zeigen? – Chajmz

+1

Haben Sie Ihr Problem gelöst? Ich stehe vor demselben Problem. –

+0

Ich auch. Es scheint ohne Grund zu passieren, hören Sie einfach auf zu verfolgen, auch wenn Sie einige Regionen im Hintergrund registriert haben. Hat es jemand herausgefunden? Ist es wirklich ein Fehler? Mit 9.3.1 passiert es mir nie ... –

Antwort

0

Ich löste es die Standort-Manager alle 3 Minuten neu zu starten:

In Ihrem Delegatmethode (locationDidUpdateToLocation in meinem Fall) stellte so etwas wie

 self.timeElapsedSinceLastTrackingUpdate = NSDate().timeIntervalSinceDate(self.lastUpdatedTime) 
    if timeElapsedSinceLastTrackingUpdate > 180 { 
     self.lastUpdatedTime = NSDate()   
     self.LocationMgr.stopUpdatingLocation() 
     UIApplication.sharedApplication().beginBackgroundTaskWithExpirationHandler({})     
     NSTimer.scheduledTimerWithTimeInterval(180, target: self.LocationMgr, selector: #selector(self.LocationMgr.startUpdatingLocation), userInfo: nil, repeats: false) 
    } 

auch sicherstellen, dass Sie beiden Tasten (NSLocationAlwaysUsageDescription und NSLocationWhenInUseUsageDescription) in Ihrem Info.plist

<key>NSLocationAlwaysUsageDescription</key> 
    <string>This app needs to use your location</string> 

    <key>NSLocationWhenInUseUsageDescription</key> 
    <string>This app needs to use your location</string> 

Und schließlich sollten Sie diese Variablen auf dem Standort-Manager einzustellen:

pausesLocationUpdatesAutomatically = false

und

allowsBackgroundLocationUpdates = true 
+0

Ich habe es auf iOS 10 getestet und es hat nicht für mich funktioniert. Nach einiger Zeit (ich weiß nicht genau, wie lang) hört es im Hintergrund auf, den Ort zu bekommen. – Mijail

+0

das gleiche hier, in meinem Fall hörte es nach 15 Minuten auf. Ich habe auf iPhone6 ​​Plus und iOS 10.0.1 getestet –

0

Ich habe das gleiche Problem. die Art, wie ich dieses Problem zu lösen gefunden habe, ist zu settings gehen ->privacy ->location services -> Ihre Anwendung finden ->allow location access -> Schalter auf never -> zurück zu location services -> dann allow location access wieder auf Ihrem Dienst zu wechseln. aber nur manchmal arbeiten.

auch, wie ich weiß (vielleicht bin ich mir Sorgen.) Wenn die Genauigkeit nicht genug ist, was Sie festgelegt haben. Die Standortaktualisierung wurde nicht gestartet.

Verwandte Themen