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.
Gibt es eine Möglichkeit, weniger als 1% der Batterie pro Stunde zu verbrauchen? Oder ist es das Endergebnis? – poiuytrez
PausenAutomatisch und ermöglichen verzögerte Updates sind nur für Standard-Speicherort (nicht SLC). – poiuytrez
Wir verwenden wissenschaftliche Tests, wir machen keine Sachen im SLC Callback. Wir machen kein Geofencing. – poiuytrez