2010-12-31 8 views
0

Ich weiß, das wurde eine Tonne gefragt, so meine Entschuldigung. Ich habe den folgenden Code und kann den Standort nicht immer eine Nullantwort abrufen. Ich versuche, einen LocationListener in diesem Fall zu vermeiden, da ich bereits einen Update-Service verwende, und der Standort muss wirklich nicht so gut sein, so dass der letzte bekannte Ort gut genug ist. Danke für die Hilfe.Den Standort in Android programmatisch bekommen

LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
String providers[] = {"gps", "network", "passive"}; 
Location loc = null; 
for(String x : providers) { 
    loc = lm.getLastKnownLocation(x); 
    if(loc != null) break; 
} 
if(loc != null) { 
    // do something, never reached 
} 

Antwort

1

Ich habe den folgenden Code, und kann die Lage nicht bekommen, immer eine Null-Antwort.

Natürlich.

Ich versuche, eine Location in diesem Fall zu vermeiden, weil ich bereits einen Update-Service bin mit

Ich habe keine Ahnung, was das bedeutet, aber ich vermute, dass Sie ein LocationListener benötigen, ob Sie Es oder nicht.

Android überprüft nicht ständig Ihren Standort. Gerade bei GPS wäre das für die Batterie schrecklich. Android überprüft nur Ihren Standort, wenn jemand requestLocationUpdates() oder addProximityAlert() verwendet.

+0

Wenn das stimmt, was ist der Zweck der Funktion getLastKnownLocation()? Das ist alles was ich wirklich will, der letzte bekannte Ort von jedem Service, Präzision ist keine große Sache. Auch bei Zuhörern müsste ich für jeden Anbieter einen Listener machen, und das scheint eine riesige Verschwendung zu sein, da ich nur alle 4 Stunden aktualisiere. – steveo225

1

Ich bin mir nicht sicher, aber vielleicht passiert das, weil Sie einen Emulator verwenden? Ich erinnere mich, dass ich versucht habe, den letzten bekannten Ort zu überprüfen und etwas wie deinen Fehler zu haben. Also überprüfe ich immer getLastKnownLocation (Provider)! = Null, bevor Sie es verwenden.

Verwandte Themen