El LocationManager
API auf Android scheint für eine Anwendung, die nur gelegentlich eine grobe Annäherung an den Standort des Nutzers benötigt, etwas mühsam zu sein.
Die App, an der ich arbeite, ist eigentlich keine Standort-App, aber sie muss den Standort des Benutzers abfragen, um eine Liste von Geschäften in der Nähe anzeigen zu können. Sie muss sich nicht darum kümmern, ob der Benutzer sich bewegt oder so etwas.
Ich würde gerne Folgendes tun:
- Zeigt dem Benutzer eine Liste von Orten in der Nähe.
- Den Standort des Nutzers vorladen, so dass er zum Zeitpunkt, an dem ich ihn in
Activity
X, wird es verfügbar sein. - Die Genauigkeit und die Häufigkeit der Aktualisierungen sind mir nicht besonders wichtig. Es reicht aus, wenn ich nur einen Standort erfasse, solange er nicht weit daneben liegt. Wenn ich schick sein will, aktualisiere ich den Standort vielleicht einmal alle paar Minuten oder so, aber das hat keine große Priorität.
- Funktioniert mit jedem Gerät, das entweder über ein GPS oder einen Netzwerkstandortanbieter verfügt.
Es scheint, dass es nicht so schwer sein sollte, aber es scheint mir, dass ich zwei verschiedene Standortanbieter (GPS und NETZWERK) einrichten und den Lebenszyklus jedes Anbieters verwalten muss. Und nicht nur das, ich muss denselben Code in mehreren Aktivitäten duplizieren, um Nr. 2 zu erfüllen. Ich habe versucht, mit getBestProvider()
Ich habe in der Vergangenheit versucht, die Lösung auf einen einzigen Standortanbieter zu beschränken, aber das scheint Ihnen nur den besten "theoretischen" Anbieter zu liefern und nicht den Anbieter, der Ihnen tatsächlich die besten Ergebnisse liefert.
Gibt es eine einfachere Möglichkeit, dies zu erreichen?
1 Stimmen
Sie könnten eine einfache Bibliothek verwenden, die all die Dinge abstrahiert, die "unter der Haube" passieren müssen: github.com/delight-im/Android-SimpleLocation
0 Stimmen
Hier finden Sie die Antwort in Kotlin: stackoverflow.com/a/53800632/2201814
0 Stimmen
Sie können in Android verschmolzene Techniken zur Standorterfassung verwenden.
0 Stimmen
FusedLocation funktioniert gut (ich weiß allerdings immer noch nicht, warum getCurrentLocation() veraltet sein musste).