wake-up-neo.com

Android Standortanbieter - GPS oder Netzwerkanbieter?

In meiner Bewerbung möchte ich den aktuellen Standort des Nutzers ermitteln. Ich habe diesbezüglich jedoch einige Fragen:

  1. Es gibt verschiedene Standortanbieter. Welcher ist der genaueste? Der GPS Provider oder der Network Provider ?

  2. Inwiefern unterscheiden sich diese 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 der GPS-Funktionalität in meiner Anwendung beginnen kann?

117
Noman

Android bietet 3 Standortanbieter an.

Sie sind:

gps -> (GPS, AGPS): Name des GPS-Standortanbieters. Dieser Anbieter ermittelt den Standort mithilfe von Satelliten. Abhängig von den Bedingungen kann es eine Weile dauern, bis dieser Anbieter einen Standortfix zurückgibt. Erfordert die Berechtigung Android.permission.ACCESS_FINE_LOCATION.

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

passiv -> (CellID, WiFi MACID): Ein spezieller Standortanbieter zum Empfangen von Standorten, ohne tatsächlich eine Standortkorrektur einzuleiten. Mit diesem Anbieter können Standortaktualisierungen passiv empfangen werden, wenn andere Anwendungen oder Dienste sie anfordern, ohne die Standorte selbst anzufordern. Dieser Anbieter gibt Standorte zurück, die von anderen Anbietern generiert wurden. Erfordert die Berechtigung Android.permission.ACCESS_FINE_LOCATION. Wenn jedoch das GPS nicht aktiviert ist, gibt dieser Anbieter möglicherweise nur grobe Korrekturen zurück. Dies ist, was Android nennt diese Standortanbieter, aber die zugrunde liegenden Technologien, um dieses Zeug zum Laufen zu bringen, sind auf die spezifischen Hardware- und Telekommunikationsfunktionen (Netzwerkdienst) abgebildet.

Der beste Weg ist, zuerst den "Netzwerk" - oder "passiven" Anbieter zu verwenden und dann auf "GPS" zurückzugreifen und je nach Aufgabe zwischen den Anbietern zu wechseln. Dies deckt alle Fälle ab und bietet einen Service mit dem niedrigsten gemeinsamen Nenner (im schlimmsten Fall) und einen hervorragenden Service (im besten Fall).

enter image description here

Artikelreferenz: Android-Standortanbieter - GPS, Netzwerk, passiv Von Nazmul Idris

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

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

Jetzt Android haben Fused Location Provider

Der Fused Location Provider verwaltet die zugrunde liegende Standorttechnologie auf intelligente Weise und bietet Ihnen den besten Standort gemäß Ihren Anforderungen. Es vereinfacht Apps das Abrufen des aktuellen Standorts des Benutzers mit verbesserter Genauigkeit und geringerem Stromverbrauch

Fused Location Provider bieten drei Möglichkeiten zum Abrufen von Standorten

  1. Letzter Standort: Verwenden Sie diese Option, wenn Sie den aktuellen Standort einmal kennen möchten.
  2. Standort mit Listener anfordern: Wird verwendet, wenn die Anwendung auf dem Bildschirm/Frontend angezeigt wird und weiterhin Standort benötigt.
  3. Standort mit ausstehender Absicht anfordern: Wird verwendet, wenn die Anwendung im Hintergrund ausgeführt wird und der Standort fortgesetzt werden soll.

Referenzen:

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

Beispiel für einen Anbieter für fusionierte Standorte: GIT: https://github.com/kpbird/fused-location-provider-example

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

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

262

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

Ein guter Anfang könnte sein, einen Blick auf die Android dev-Site zu werfen. Sie enthielt einen Abschnitt zur Bestimmung des Benutzerstandorts und enthielt alle benötigten Codebeispiele.

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

7
Otra

Es gibt einige gute Antworten, die hier erwähnt werden. Ein anderer Ansatz, den Sie wählen könnten, wäre, einige kostenlose SDKs wie Atooma, Tranql und Neura zu verwenden, die in Ihre Android) - Anwendung integriert werden können (die Integration dauert weniger als 20 Minuten) Wenn Sie den genauen Standort Ihres Benutzers ermitteln, erhalten Sie auch gute Einblicke in die Aktivitäten Ihres Benutzers, und einige davon verbrauchen weniger als 1% Ihres Akkus

3
johndaly