2016-07-16 11 views
-1

So wie der Titel sagt, ich folge dem Code auf der Android-Entwickler-Website gefunden und versucht, die Breite und Länge meines aktuellen Standortes zu erhalten. Ich verwende Android Studio und einen Emulator. Ich habe keine Ahnung, warum mein Code Null liefert, wenn ich getLatitude() und getLongitude() benutze - ich dachte, ich folgte dem Code wie angegeben.Android - LocationServices ist Null beim Versuch, den aktuellen Standort zu erhalten

Danke!

HomePage.java (Was der Klasse benötigt wird):

public void onConnected(@Nullable Bundle bundle) { 
    if (location == null){ 
     declareLocation(); 
    } 
    double latitude = location.getLatitude(); 
    double longitude = location.getLongitude(); 
    SharedPreferences sharedPreferences = getSharedPreferences("example.com.musicapptest", Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putLong("latitude", Double.doubleToLongBits(latitude)); 
    editor.putLong("longitude", Double.doubleToLongBits(longitude)); 
} 
private Location declareLocation(){ 
    try{ 
     location = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); 
    } 
    catch (SecurityException e){ 
     e.printStackTrace(); 
    } 
    return location; 
} 
+0

Mögliche Duplikat [LocationClient getLastLocation() return null] (http://stackoverflow.com/questions/16830047/locationclient-getlastlocation-return-null) –

Antwort

0

Eine Reihe von Faktoren könnte die Ursache sein. Ist der ApiClient verbunden? Hast du richtig gebaut? Wenn beides zutrifft, ist der Standort nicht verfügbar.

unter Angabe der Kennziffer:

Gibt die beste, den aktuellen Standort verfügbar.

Wenn ein Speicherort nicht verfügbar ist, was sehr selten passieren sollte, wird null zurückgegeben. Die beste verfügbare Genauigkeit unter Berücksichtigung der Standortberechtigungen wird zurückgegeben.

Diese Methode bietet einen vereinfachten Weg zur Lokalisierung. Es eignet sich besonders für Anwendungen, die keinen genauen Standort erfordern und keine zusätzliche Logik für Standortaktualisierungen beibehalten möchten.

Sie können auch getLocationAvailability().isLocationAvailable() verwenden, um herauszufinden, ob null zurückgegeben wird. Wenn diese Methode false zurückgibt, müssen Sie Standortaktualisierungen mithilfe der Methode requestLocationUpdates() anfordern.

In Bezug auf Standort-Updates, können Sie zu diesem Handbuch verweisen: https://developer.android.com/training/location/index.html