2016-07-02 14 views
1

Below zu machen, ist das aktuelle Zitat aus dem offiziellen Guide site für Location APIAndroid Google-Service-Spiele: Best Practices Standortanfrage

Zwischen diesen beiden Extremen ist ein sehr häufiger Anwendungsfall, wo Anwendungen auf jeden Fall Sie möchten Aktualisierungen in einem angegebenen Intervall von erhalten und sie können schneller empfangen werden, wenn sie verfügbar sind. Sie möchten jedoch weiterhin eine niedrige Stromausbeute von . Diese Anwendungen sollten PRIORITY_BALANCED_POWER_ACCURACY kombiniert mit einem schnelleren setFastestInterval (lang) (z. B. 1 Minute) und einem langsameren setInterval (lang) (z. B. 60 Minuten) berücksichtigen. Ihnen wird nur Macht Schuld für das Intervall von setInterval (lang) zugewiesen, kann aber immer noch Standorte von anderen Anwendungen ausgelöst mit einer Rate bis zu setFastestInterval (lang). Dieser Anforderungsstil eignet sich für viele standortbezogene Anwendungen, einschließlich der Hintergrundnutzung. Seien Sie vorsichtig, auch setFastestInterval (lang) zu drosseln, wenn Sie schwere Arbeit nach dem Empfang eines Updates durchführen - wie zum Beispiel mit dem Netzwerk.

Meine Sorge bezieht sich auf diese Verfahren

LocationRequest setFastestInterval(long millis) 

Explizit die schnellste Intervall für Standort-Updates, in Millisekunden eingestellt.

LocationRequest setInterval(long millis) 

Legen Sie das gewünschte Intervall für aktive Standortaktualisierungen in Millisekunden fest.

Sagen wir Zahlen ... Wenn ich interval = 30s und am schnellsten = 8s, dann bei t = 8, t = 16, t = 24 (Vielfache von 8) bekomme ich Updates von anderen Anwendungen? Was passiert, wenn keine ortsbezogenen Apps laufen? Um 30s kann ich ein neues Update sehen? Wird dieses Update als Stromverbrauch meiner App gezählt? Wie wird es geschätzt?

Also, wenn das stimmt, was ist dann eine gute Beziehung zwischen diesen beiden Parametern, um Updates in Echtzeit zu erhalten, ohne viel Strom zu verbrauchen? Zum Beispiel Intervall = 6 x am schnellsten?

Ich hätte es selbst versucht, aber ich kann das von der Anleitung beschriebene Szenario nicht wiederholen, ich kann auch nicht unterscheiden, welche Updates die Macht beschuldigen.

Antwort

1

Wenn Ihre App den Standort kontinuierlich verfolgen kann, muss sie in regelmäßigen Abständen den Standort des Geräts ermitteln. Während Sie den Standort eines Geräts mit getLastLocation() abrufen können, ist es eine direktere Methode, regelmäßige Aktualisierungen vom fusionierten Standortanbieter anzufordern. Daraufhin aktualisiert die API Ihre App regelmäßig mit dem besten verfügbaren Standort, basierend auf den derzeit verfügbaren Standortanbietern wie WLAN und GPS.

Bevor Sie Standortupdates anfordern, muss Ihre App eine Verbindung mit den Standortdiensten herstellen und eine Standortanfrage stellen. Sobald eine Standortanforderung vorhanden ist, können Sie die regelmäßigen Aktualisierungen starten, indem Sie requestLocationUpdates() aufrufen. Tun Sie dies in der onConnected() Rückruffunktion, die von Google API Client bereitgestellt wird, die aufgerufen wird, wenn der Client bereit ist.

Versuchen Sie, die Location Strategies zu lesen. Die in diesem Handbuch beschriebenen Strategien gelten für die Plattformpositions-API in android.location. Zeigen Sie auch die für `obtaining user location and defining a Model for the Best Performance'