Android-Standortanbieter – GPS oder Netzwerkanbieter?

In meiner Anwendung möchte ich den aktuellen Standort des Benutzers ermitteln. Ich habe jedoch ein paar Fragen in diesem Zusammenhang:

  1. Es gibt verschiedene Standortanbieter, welcher ist der genaueste? Der GPS-Anbieter oder der Netzwerkanbieter ?

  2. Inwiefern unterscheiden sich die verfügbaren Anbieter? Wie funktionieren sie?

  3. Könnten Sie mir bitte einige Code-Snippets oder Tutorials zur Verfügung stellen, wie Sie mit der Implementierung der GPS-functionalität in meiner Anwendung beginnen können?

   

Es gibt 3 Standortanbieter in Android.

Sie sind:

GPS -> (GPS, AGPS): Name des GPS-Standortanbieters. Dieser Anbieter bestimmt den Standort mithilfe von Satelliten. Je nach den Bedingungen kann es für diesen Anbieter eine Weile dauern, bis ein Standortfix zurückgegeben wird. Erfordert die Berechtigung android.permission.ACCESS_FINE_LOCATION.

Netzwerk -> (AGPS, CellID, WiFi MACID): Name des Netzwerkstandortanbieters. Dieser Anbieter ermittelt den Standort basierend auf der Verfügbarkeit von Mobilfunkmasten und WLAN-Zugangspunkten. Ergebnisse werden mittels einer Netzwerksuche abgerufen. Erfordert eine der Berechtigungen android.permission.ACCESS_COARSE_LOCATION oder android.permission.ACCESS_FINE_LOCATION.

passiv -> (CellID, WiFi MACID): Ein spezieller Standortanbieter für den Empfang von Standorten, ohne dass ein Standort- Update tatsächlich initiiert wird. Dieser Provider kann verwendet werden, um Standortinformationen passiv zu empfangen, wenn andere Anwendungen oder Dienste sie anfordern, ohne die Standorte selbst anzufordern. Dieser Anbieter gibt von anderen Anbietern generierte Standorte zurück. Erfordert die Berechtigung android.permission.ACCESS_FINE_LOCATION. Wenn das GPS jedoch nicht aktiviert ist, gibt dieser Anbieter möglicherweise nur grobe Korrekturen zurück. Dies ist, was Android diese Standortanbieter nennt, jedoch sind die zugrunde liegenden Technologien, um dieses Zeug zum functionieren zu bringen, den spezifischen Hardware- und Telco-functionen (Netzwerkdienst) zugeordnet.

Am besten verwenden Sie zuerst den Provider “network” oder “passiv” und dann “fallback” auf “gps” und wechseln je nach Aufgabe zwischen den Providern. Dies deckt alle Fälle ab und bietet einen minimalen gemeinsamen Nenner-Service (im schlimmsten Fall) und einen großartigen Service (im besten Fall).

Bildbeschreibung hier eingeben

Artikel Referenz: Android Location Providers – GPS, Netzwerk, passiv Von Fernando Cejas

Code-Referenz: https://stackoverflow.com/a/3145655/28557

———————–Aktualisieren———————–

Jetzt hat Android Fused Location Provider

Der Fused Location Provider verwaltet die zugrundeliegende Standorttechnologie intelligent und bietet Ihnen den besten Standort gemäß Ihren Anforderungen. Es vereinfacht Apps den aktuellen Standort des Benutzers mit verbesserter Genauigkeit und geringerem Stromverbrauch

Fused Location Provider bieten drei Möglichkeiten zum Abrufen des Standorts

  1. Letzter Standort: Verwenden Sie diese Option, wenn Sie den aktuellen Standort einmal erfahren möchten.
  2. Standort über Listener anfordern: Wird verwendet, wenn sich die Anwendung auf dem Bildschirm / Frontend befindet und einen fortlaufenden Speicherort benötigt.
  3. Standort unter Verwendung der ausstehenden Absicht anfordern: Wird verwendet, wenn die Anwendung im Hintergrund ausgeführt wird und einen fortlaufenden Standort benötigt.

Verweise :

Offizielle Website: http://developer.android.com/google/play-services/location.html

Fused Location Provider Beispiel: GIT: https://github.com/kpbird/fused-location-provider-example

http://blog.lemberg.co.uk/fused-location-provider

————————————————– ——

GPS ist im Allgemeinen genauer als das Netzwerk, aber manchmal ist GPS nicht verfügbar, daher müssen Sie möglicherweise zwischen den beiden wechseln.

Ein guter Anfang könnte sein, die Android Dev-Seite zu betrachten. Sie hatten einen Abschnitt, der sich der Bestimmung des Benutzerstandorts widmet und alle erforderlichen Codebeispiele enthält.

http://developer.android.com/guide/topics/location/obtean-user-location.html

Es gibt einige tolle Antworten hier erwähnt. Eine andere Möglichkeit wäre, einige kostenlose SDKs wie Atooma, Tranql und Neura online zu verwenden, die in Ihre Android-Anwendung integriert werden können (die Integration dauert weniger als 20 Minuten). Sie erhalten nicht nur den genauen Standort Ihres Nutzers, sondern auch gute Einblicke in die Aktivitäten Ihrer Nutzer. Außerdem verbrauchen einige von ihnen weniger als 1% Ihrer Batterie