139 Stimmen

Android-Standortanbieter - GPS oder Netzwerkanbieter?

In meiner Anwendung möchte ich den aktuellen Standort des Benutzers ermitteln. Dazu habe ich allerdings ein paar Fragen:

  1. Es gibt verschiedene Standortanbieter, welcher ist der genaueste? Die GPS-Anbieter oder die Netzbetreiber ?

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

  3. Könnten Sie mir bitte einige Code-Schnipsel oder Tutorials zur Verfügung stellen, wie ich mit der Implementierung von GPS-Funktionen in meiner Anwendung beginnen kann?

295voto

Vinayak Bevinakatti Punkte 39533

In Android gibt es 3 Standortanbieter.

Sie sind:

gps -> (GPS, AGPS): Name des GPS-Standortanbieters. Dieser Anbieter bestimmt den Standort mithilfe von Satelliten. Je nach Bedingungen kann es eine Weile dauern, bis dieser Anbieter eine Standortbestimmung liefert. Erfordert die Berechtigung Android.permission.ACCESS_FINE_LOCATION.

Netzwerk -> (AGPS, CellID, WiFi MACID): Name des Netzes Standortanbieter. Dieser Anbieter bestimmt den Standort auf der Grundlage von Verfügbarkeit von Mobilfunkmasten und WiFi-Zugangspunkten. Die Ergebnisse sind Ergebnisse werden mit Hilfe eines Netzwerk-Lookups abgerufen. Erfordert entweder die Berechtigungen Android.permission.ACCESS_COARSE_LOCATION oder Android.permission.ACCESS_FINE_LOCATION.

passiv -> (CellID, WiFi MACID): Ein spezieller Standortanbieter für Empfang von Standorten, ohne dass eine Standortbestimmung durchgeführt wird. Dieser Anbieter kann verwendet werden, um passiv Standortaktualisierungen zu empfangen, wenn andere Anwendungen oder Dienste Aktualisierungen des Standorts anfordern, ohne die Standorte selbst anzufordern. Dieser Anbieter gibt Standorte zurück, die von anderen Anbietern anderen Anbietern. Erfordert die Berechtigung Android.permission.ACCESS_FINE_LOCATION, aber wenn das GPS nicht aktiviert ist nicht aktiviert ist, gibt dieser Anbieter möglicherweise nur grobe Fixes zurück. Das ist es, was Android nennt diese Standortanbieter, aber die zugrunde liegenden zugrundeliegenden Technologien, damit diese Dinge funktionieren, sind auf die Hardware und den von der Telefongesellschaft bereitgestellten Fähigkeiten (Netzdienst).

Am besten ist es, wenn Sie zuerst den "Netzwerk"- oder "passiven" Anbieter nutzen, und dann auf "gps" zurückzugreifen, und je nach Aufgabe zwischen Anbietern. Dies deckt alle Fälle ab und bietet einen kleinsten gemeinsamen kleinsten gemeinsamen Nenner (im schlimmsten Fall) und einen hervorragenden Dienst (im besten Fall). Fall).

enter image description here

Artikelbezeichnung : Android-Standort-Anbieter - gps, Netzwerk, passiv Von Nazmul Idris

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

-----------------------Update-----------------------

Jetzt hat Android Gesicherter Standortanbieter

Der Fused Location Provider verwaltet die zugrundeliegende Ortungstechnologie auf intelligente Weise und liefert Ihnen den besten Standort entsprechend Ihren Anforderungen. Er vereinfacht den Weg für Apps, den aktuellen Standort des Benutzers mit verbesserter Genauigkeit und geringerem Stromverbrauch zu ermitteln.

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

  1. Letzter Standort: Verwenden Sie diese Funktion, wenn Sie den aktuellen Standort einmalig erfahren möchten.
  2. Standort über Listener anfordern: Wird verwendet, wenn die Anwendung auf dem Bildschirm / Frontend ist und eine kontinuierliche Positionierung erfordert.
  3. Standort über Pending Intent anfordern: Verwenden Sie diese Option, wenn die Anwendung im Hintergrund läuft und eine kontinuierliche Positionierung erforderlich ist.

Referenzen:

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

Beispiel für einen gesicherten Standortanbieter: GIT : https://github.com/kpbird/fused-location-provider-example

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

--------------------------------------------------------

6voto

Otra Punkte 8028

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

Ein guter Anfang könnte ein Blick auf die Android-Entwicklungsseite sein. Sie hatten einen Abschnitt gewidmet, um Benutzer Standort zu bestimmen und es hat alle Code-Beispiele, die Sie benötigen.

http://developer.Android.com/guide/topics/location/obtaining-user-location.html

4voto

johndaly Punkte 115

Es gibt einige gute Antworten, die hier erwähnt werden. Ein anderer Ansatz, den Sie verfolgen könnten, wäre die Verwendung einiger kostenloser SDKs, die online verfügbar sind, wie Atooma, tranql und Neura, die in Ihre Android-Anwendung integriert werden können (die Integration dauert weniger als 20 Minuten). Sie geben Ihnen 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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X