Der beste Weg, den GPS-Standort des Benutzers im Hintergrund in Android zu erhalten
In meine android-app möchte ich, um Benutzer aktuelle Position alle paar Minuten-Intervall und update in meinem center server über die web-service.
Derzeit bin ich mit Fused Location für bekommen Nutzer aktuelle Lage, Siehe link
nun möchte ich wissen, was ist der beste Weg, den Standort der Benutzer, die Häufig und aufrufen von web service.
unten ist mein code, der mir user aktuelle Lage: -
locationrequest = LocationRequest.create();
locationrequest.setInterval(10000);
locationclient.requestLocationUpdates(locationrequest,new com.google.android.gms.location.LocationListener() {
@Override
public void onLocationChanged(Location location) {
Log.i(TAG, "Last Known Location :" + location.getLatitude() + "," + location.getLongitude());
}
});
nun aus, wo muss ich diesen code aufzurufen.
Kann ich diese in einen hintergrund-Dienst oder einige, wo sonst.
Geben Sie bitte Ihre Idee.
TIA.
InformationsquelleAutor der Frage Ravi Bhandari | 2015-02-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie Gebrauch machen von
Service
:Ihre
AndroidManifest.xml
wird in etwa so Aussehen:InformationsquelleAutor der Antwort Arslan Sohail
Keines der rest der Antworten verwenden:
com.google.android.gms.location.FusedLocationProviderClient
Ist der Fused Location Provider und der Haupteinstiegspunkt für die Interaktion mit den fused location provider von Google, und es ist sehr schwer zu finden, ein gutes Beispiel. Dieses wurde veröffentlicht Mitte 2017 von Google.
Wenn Sie derzeit mit dem Android-framework Standort-APIs, Sie werden dringend empfohlen zu wechseln, um die Google Play services location-APIs so bald wie möglich.
Für Sie zu nutzen, die Google Location API, zuerst fügen Sie diese zu Ihrem
build.gradle
Dann mithilfe dieser Klasse können Sie
Wherebouts.java
:Von Ihrer Aktivität, Sie können es verwenden, wie dies durch übergabe eines
Workable
Objekt. Eine Praktikable Objekt ist nichts anderes als eine benutzerdefinierte Callback-Objekt gleichermaßen.Durch die Verwendung einer callback-wie Praktikabel schreiben Sie den UI-code in Ihre Tätigkeit und lassen Sie die Hektik von der Arbeit mit GPS zu einer helper-Klasse, wie Wherebouts.
Natürlich würden Sie brauchen, zu Fragen, für die entsprechende Berechtigungen für das Android OS für Ihre App zu verwenden. Lesen Sie die folgende Dokumentation für mehr info darüber, oder tun Sie etwas Forschung.
InformationsquelleAutor der Antwort Alejandro Pablo Tkachuk
Verwenden : GCM Netzwerk-Manager
Ausführen dieses starten Sie eine regelmäßige Aufgabe, die ausgeführt werden, auch nach re-boot:
dann in onRunTask() ermittelt den aktuellen Standort, und verwenden Sie es (in diesem Beispiel der Fall ist, eingereicht am Ende lassen, um UI wissen, dass die Position gefunden wurde):
Den MyLocationService ganz:
Fügen Sie auch diese 2 zu den AndroidManifest.xml:
InformationsquelleAutor der Antwort dorsz
Müssen Sie erstellen Dienst.Diesen Dienst sollten die LocationListener implementiert. Dann müssen Sie AlarmManager für aufrufenden service immer wieder mit bestimmten Frist.
Ich hoffe das hilft dir 🙂
InformationsquelleAutor der Antwort user3515851
Ich versuche meinen code und habe Erfolg versuchen, diese
InformationsquelleAutor der Antwort MukeshThakur
Mit Hilfe von GoogleApiClient die LocationServices-API wir erhalten den aktuellen Standort des Nutzers/Geräts in bestimmten Zeitabständen. Diese können Hinzugefügt werden, in einen hintergrund-service, die updates der Aktivität, wenn onLocationChanged Rückrufe
Hintergrund-Dienst wird weiterhin ausgeführt, solange die Anwendung ist in das Gedächtnis und hält sich an die Benachrichtigung-Schublade. Der service stellt die folgenden Funktionalitäten zur Verfügung,
Service Mit Standort-Listener
Siehe die Vollständige Tutorial Mit Quellcode und Erklärung im detail >>
InformationsquelleAutor der Antwort Jayakrishnan PM
Können Sie es archivieren mit einem Service-und Alarm-Manager, aber seien Sie vorsichtig mit diesem, weil, wenn Sie setup eine hohe Priorität, die Sie gonna entwässern die Batterie von dem Handy, in der anderen hand, die Sie wirklich brauchen, Benachrichtigen Sie den Speicherort der jede minute? Dies ist, weil der einzige Weg, um zu sehen, eine wesentlich änderung der Benutzer-Standort, ist es auf Reisen im Auto oder Zug. Ich Frage nur, weil, dass gonna hängen Sie die app und die Anforderung an die Verfolgung.
InformationsquelleAutor der Antwort f3rn4nd000
Nun Erstellen Sie eine Klasse, die sich Service ,ist in diesem service enthalten wird Ihren Standort listener-Klasse(Fused Location Provider) Zweck dieses Dienstes ist, erhalten Sie Standort in regelmäßigen Abständen , so etwas wie dieses
Dann erstellen Sie eine Klasse, die sich Broadcast-Empfänger , wie etwa, dass der Zweck der broadcast Receiver ist zu prüfen, ob der Dienst am Leben, wenn nicht neu starten service auch während der Telefon - /AUSSCHALTEN ....
registrieren Sie den Empfänger in die ur-Aktivität , hören Sie für Sendungen , unregeister Empfänger je ur brauchen...
InformationsquelleAutor der Antwort Gowtham GS
Um Rückruf auf LocationChange
Definieren Sie eine Schnittstelle
Rückruf in Ihrer Aktivität
Ändern onLocationChange Methode
InformationsquelleAutor der Antwort Ali Akram
Für Track die Position alle 10 Minuten(basierend auf Anforderung) Folgen Sie bitte diesem link
es ist in Ordnung, ohne Probleme
https://github.com/safetysystemtechnology/location-tracker-background
InformationsquelleAutor der Antwort Kishore Reddy