2015-07-20 6 views
12

Ich habe festgestellt, dass bei einer Anwendung, die eine signifikante Standortänderung verwendet, ungefähr 30% meiner Batterie über 24H verbraucht werden. Ich dachte, dass SLC die Batterie nicht entladen sollte.Standard Location Service Batterieabfluss unter iOS

Ist dieses Verhalten normal? Wir haben unsere Tests wissenschaftlich auf einem iPhone 6 mit iOS 8.3 und 8.4 durchgeführt. Wir haben auch ein iPhone 5c (iOS 8.3 und 8.4) ausprobiert.

Antwort

3

Es gibt mehrere Optionen auf CLLocationManager und Sie müssen sie intelligent verwenden oder Sie werden unerwarteten Batterieverbrauch sehen.

1- Wenn Sie die startMonitoringSignificantLocationChanges Methode aufrufen, vergewissern Sie sich, dass Sie startUpdatingLocation nicht bereits aufgerufen haben, andernfalls stellen Sie sicher, dass Sie es mit stopUpdatingLocation stoppen, bevor Sie eine erhebliche Entfernung verwenden.

2- Überprüfen Sie Ihre Einstellungen für PausenAutomatisch und ermöglichen Sie verzögerte Updates. Diese werden sich wesentlich auf die Dinge auswirken.

3-Wenn Sie keine Beacons, Besuche oder Geofencing benötigen, schalten Sie diese aus. Da dies LM in höhere Batterie-Drain-Modi zwingen kann.

4- Sie sollten auch prüfen, welche Logik Sie ausführen, wenn Sie eine Standortaktualisierung erhalten. Benachrichtigungen, die den Bildschirm einschalten, und Netzwerkanrufe, die den WLAN- und den Mobilfunkdienst in Gang setzen, führen zu einem deutlich höheren Batterieverbrauch als der Standortmanager allein.

Sie könnten auch https://LocationKit.io für eine Cocoapod auschecken, die entwickelt wurde, um Lokalisierungsdienste für hohe Genauigkeit und niedrige Leistung zu optimieren. Vollständige Offenlegung Ich arbeite für die Firma, die LocationKit macht.

+0

Gibt es eine Möglichkeit, weniger als 1% der Batterie pro Stunde zu verbrauchen? Oder ist es das Endergebnis? – poiuytrez

+0

PausenAutomatisch und ermöglichen verzögerte Updates sind nur für Standard-Speicherort (nicht SLC). – poiuytrez

+0

Wir verwenden wissenschaftliche Tests, wir machen keine Sachen im SLC Callback. Wir machen kein Geofencing. – poiuytrez

Verwandte Themen