Macht CLLocationManager distanceFilter alles, um Strom zu sparen?

8

Schaltet die Eigenschaft CLLocationManager distanceFilter alles aus, um Batterielebensdauer / Stromverbrauch zwischen der Anforderung in der erforderlichen Entfernung zu sparen. Ich denke nicht, dass es das tut, aber ich wollte nur überprüfen, dass ich immer noch stopUpdatingLocation aufrufen soll und es nicht nur laufen lassen soll.

Ich habe hier eine Antwort gefunden, die darauf hinwies, dass das Telefon seinen Abruf durchwählte (bis die gewünschte Entfernung erreicht war), wodurch Strom gespart wurde. Auf der anderen Seite scheint es, dass selbst die Überprüfung der gewünschten Distanz die Antennen benötigt, um aktiv zu sein und so wenig Strom spart.

Momentan, wenn ich eine locations details brauche, mache ich explizit startUpdatingLocation und suche nach einem geeigneten Ort, bevor ich die stopUpdatingLocation Nachricht an den CLLocationManager sende.

    
fuzzygoat 30.03.2011, 18:44
quelle

2 Antworten

6

Es gibt nichts , das direkt dokumentiert wurde (auf der Eigenschaft distanceFilter ), um anzuzeigen, dass dies der Fall ist. Sie sollten auf jeden Fall stopUpdatingLocation aufrufen, wenn Sie sich um die Akkulaufzeit sorgen und dem Benutzer eine anständige Erfahrung bieten. In meiner eigenen Erfahrung mit der Entwicklung von Apps habe ich nie eine Verbesserung der Akkulaufzeit gesehen, wenn ich größere Werte für die distanceFilter verwende - vielleicht, wenn es etwas tut, sind die Gewinne einfach zu gering, um es zu bemerken.

Ich glaube, der Punkt von distanceFilter besteht nicht darin, Energie zu sparen, sondern damit Sie die Anzahl der Rückrufe steuern können, die Sie erhalten, falls Ihre App keine konstanten Streams von Standortdaten benötigt.

Das heißt, ich vermute, dass es sich mit den Energieanforderungen beschäftigt. Sicherlich hat die zugehörige Eigenschaft distanceAccuracy einen definitiven Einfluss auf das Power-Management - wie in den Apple-Dokumenten:

  

Wenn Sie die gewünschte Genauigkeit für Standortereignisse auf einen Kilometer festlegen, erhält der Standortmanager die Flexibilität, die GPS-Hardware auszuschalten und sich ausschließlich auf das WLAN oder Funkzellen zu verlassen. Dies kann zu erheblichen Energieeinsparungen führen.

Ich würde also persönlich vermuten, dass distanceFilter und distanceAccuracy die Macht irgendwie beeinflussen. Das Problem (für Sie, denke ich) ist, dass die messbaren Effekte von Gerät zu Gerät und wahrscheinlich von OS-Version zu OS-Version variieren. Es ist daher sehr schwierig, eine sinnvolle Quantifizierung vorzunehmen.

    
lxt 30.03.2011, 19:09
quelle
5

Ein Apple-Beispielcode besagt ausdrücklich, dass die Einstellung eines größeren Abstandsfilters nicht hilft, Energie zu sparen:

Ссылка

  

... Außerdem beeinflusst der distanceFilter die Aktivität der Hardware nicht, d. h. es wird keine Energie eingespart, indem ein größerer distanceFilter eingestellt wird, da die Hardware weiterhin Messungen erfasst. Dies wirkt sich nur darauf aus, ob diese Messungen an den Stellvertreter des Standortmanagers weitergegeben werden. Strom kann nur gespeichert werden, indem der Standortmanager ausgeschaltet wird.

    
Pius 10.01.2012 07:22
quelle

Tags und Links