Wie stellt Android fest, ob eine App unter „Letzte Standortanfragen“ die Meldung „Hoher Akkuverbrauch“ aufweist?

StackOverflow https://stackoverflow.com//questions/20012518

Frage

Ab Kitkat (4.4) meldet Android, dass meine App „Hoher Akkuverbrauch“ aufweist.

Ich verwende sowohl Netzwerkstandort als auch GPS.Wenn ich GPS deaktiviere, wird die App anscheinend mit „Niedriger Batterieverbrauch“ markiert.

Ich frage mich, ob es Tipps zur Verwendung von GPS unter Beibehaltung der Kennzeichnung „Niedriger Batterieverbrauch“ gibt.Vielleicht, wenn Sie selten genug abfragen – oder ist es fest auf GPS = Batteriekiller programmiert?

BEARBEITEN:

Ich verstehe, dass die Änderung dieser Parameter die Batterielebensdauer verlängert.Meine Frage war eher, ob Android diese Versuche, die Akkulaufzeit zu verlängern, erkennt oder ob es meine App einfach als stromverbrauchend brandmarken wird, nur weil sie GPS verwendet.

War es hilfreich?

Lösung

Ich habe den den Standort (und [Link entfernt ]) und nach einem ganzen Tag, den Standort einmal jede Minute zu bekommen, verwendete meine Anwendung etwa 4% der Batterie.

(vorheriger Link ist jetzt ein Parkplatz, der versucht, die Browsererweiterung zu installieren: http://kpbird.com/2013/06/fused-location-provider-example.html?m=1 )

Andere Tipps

Gute Frage, aber wiederholend.Ja, die Abfragehäufigkeit wirkt sich stark auf die Akkulaufzeit aus.Daher sollte die Häufigkeit, mit der die Standortaktualisierungen des Benutzers abgerufen werden, an die spezifischen Bedürfnisse angepasst werden.

  1. Grundsätzlich lesen Sie die Android-Dokumentation von requestLocationUpdates von Location-Manager, es sagt:

    requestLocationUpdates (long minTime, float minDistance, Criteria criteria, PendingIntent intent)

    Um die Batterielebensdauer zu verlängern, ist es wichtig, einen sinnvollen Wert für „minTime“ zu wählen. Für jede Standortaktualisierung ist Strom über GPS, WLAN, Mobilfunk und andere Funkgeräte erforderlich.Wählen Sie einen möglichst hohen minTime-Wert aus, der dennoch ein angemessenes Benutzererlebnis bietet.Wenn sich Ihre Anwendung nicht im Vordergrund befindet und dem Benutzer den Standort anzeigt, sollte Ihre Anwendung die Verwendung eines aktiven Anbieters (z. B. NETWORK_PROVIDER oder GPS_PROVIDER) vermeiden. Wenn Sie jedoch darauf bestehen, wählen Sie eine Mindestzeit von 5 * 60 * 1000 (5 Minuten) oder größer.Wenn sich Ihre Anwendung im Vordergrund befindet und dem Benutzer den Standort anzeigt, ist es sinnvoll, ein schnelleres Aktualisierungsintervall auszuwählen.

    Der Parameter minDistance kann auch verwendet werden, um die Häufigkeit von Standortaktualisierungen zu steuern.Wenn er größer als 0 ist, sendet der Standortanbieter Ihrer Anwendung nur dann eine Aktualisierung, wenn sich der Standort um mindestens minDistance Meter geändert hat UND mindestens minTime Millisekunden vergangen sind.Allerdings ist es für Standortanbieter schwieriger, mithilfe des Parameters minDistance Strom zu sparen minTime sollte das wichtigste Hilfsmittel zur Schonung der Batterielebensdauer sein.

  2. Bitte lesen Sie Folgendes, um einige gute Antworten darauf zu erhalten, wie sich der Akku entlädt und was getan werden kann, um den Batterieverbrauch zu minimieren:

    Regelmäßige Android-GPS-Abfragen im Dienst, wodurch die Akkulaufzeit maximiert wird

    Was ist der batterieeffizienteste Ansatz bei der Verwendung von LocationClient, um regelmäßig Updates zu erhalten?

    Gute Möglichkeit, den Standort des Benutzers in Android zu ermitteln

    Sparen Sie Batteriestrom, der von GPS-Diensten in Android verbraucht wird

    Ist der Standortanbieter wirklich eine Belastung für die Batterie?

    Akkulaufzeit bei Verwendung von GPS und Hintergrund-App iOS/Android

    Aufrechterhaltung eines GPS-Dienstes und Optimierung der Akkulaufzeit

Hoffe das hilft.

Bearbeiten:Ich stimme @ioan zu.Jetzt können Sie die Fused Location API verwenden, um den Standort einfach und effizient zu ermitteln.

kürzlich umgestaltet, um den Standort des Codes zu erhalten, lernen Sie einige gute Ideen und erreichte schließlich eine relativ perfekte Bibliothek und Demo.

generasacodicetagpre.

vollständige Implementierung: https://github.com/bingerz/fastlocation/blob/master/fastlocationlib/src/main/java/cn/bingerz/fastlocation/fastlocation.java

Markieren:

  • Jede Anforderung Um den Standort abzuschließen, ist es am besten zum Entfernen von Updaten, ansonsten zeigt die Telefonstatusleiste immer das Positionierungssymbol
  • an.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top