2016-04-14 14 views
-1

Ich versuche, den Standort in einer Android-Anwendung zu implementieren. Ich habe zuerst versucht, den Ansatz, den ich aus bezahlten Kursen gelernt habe - den LocationListener zu erweitern. Ich habe versucht, mit dem "besten Anbieter" zu arbeiten, der von locationManager.getBestProvider zurückgegeben wurde, aber ich fand heraus, dass es zu oft GPS ist, das 0,0 zurückgibt. Also habe ich alles auf 3 Anbieter umgestellt: gps, network und passiv. Zeigt alle latLng und Genauigkeit von allen 3. Es ist oft das gleiche, obwohl das GPS 30% der Zeit 0,0 zurückgibt.Android-Standort - egal wie ich es implementiere, bekomme ich nie das Standortmarkierungssymbol in der Benachrichtigungsleiste

Dann habe ich den gesamten Ansatz zur Verwendung von GoogleApiClient geändert. Implementiert GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener und LocationListener.

Die Werte hier sind etwas ähnlich zu dem, was ich mit dem ersten Ansatz bekomme.

Aber egal, was ich tue, bekomme ich nie das Ortsmarkierungssymbol in der Benachrichtigungsleiste. Wie für Google Maps oder eine Call-A-Taxi-App. Warum ist das?

Auch in beiden Fällen erscheinen die Apps in den Einstellungen "Letzte Standortanforderungen"; der Anwendungsname für LocationListener und die Google App/Google Location History für den zweiten Ansatz.

Ich teste auf Nexus 4 (mit Lager 5.1.1) und 5 (Lager 6.0.1) Geräte. Berechtigungen sind in dem Manifest, und hinzugefügt, um die notwendigen Berechtigungsprüfung für API-Ebene 23.

die Mainactivity Klassen sind hier zu finden: using Google API und using LocationListener Vielen Dank für die Hilfe!

+0

Warum nicht den Pfosten Code hier, anstatt sie auf einer externen Website zu halten? – Shark

+0

weil es waay zu lang ist und den Beitrag sehr nervig zum lesen machen würde. Und da die Implementierung fast von den Google-Beispielen stammt, war nicht sicher, dass es viel zur Frage bringt. – cristian

Antwort

0

Die Benachrichtigungssymbol Positionsmarkierung erscheinen nur, wenn Sie die LocationManager.GPS_PROVIDER auf der Methode

lm.requestLocationUpdates (LocationManager.GPS_PROVIDER, 5000, 1, dieses) verwenden;

wenn Sie LocationManager.NETWORK_PROVIDER dort verwenden kein wird ein Symbol in der Statusleiste sein

EDIT:

prüfen aswell Ihren Standort Modus in Settings->Location->Mode legen Sie es auf hohe

+0

danke das war es! – cristian