2016-04-08 1 views
0

Ich möchte den aktuellen Standort und Stadt Name mit Xamarin.Android erhalten. Ich habe den Code von diesem Link https://developer.xamarin.com/recipes/android/os_device_resources/gps/get_current_device_location/ verwendet, aber ich bekomme nur 'Latitude' und 'Longitude'. Vielleicht bekomme ich die Adresse nicht, weil ich einen Emulator verwende?Aktuellen Standort und Stadt Name Xamarin.Android

Ich mag dieses Problem beheben und aktuellen Standort und Adresse mit dem minimalen Code erhalten (mit einigen Plugins, api, vielleicht ..)

Vielen Dank im Voraus :)

Antwort

0

Ich glaube, Sie nehmen Blick auf geocoder in android

var addresses = await geo.GetFromLocationAsync (42.37419, -71.120639, 1); 

Dieses Rezept erstellt eine Geocoder Instanz, die im Android.Locations Namespace ist. Der Geocodierer ruft GetFromLocationAsync mit dem Längen- und Breitengrad auf, um den Geocode umzukehren. Dadurch wird der Netzwerkaufruf asynchron ausgeführt, sodass der Haupt-UI-Thread nicht blockiert wird. Wenn das Ergebnis zurückgegeben wird, gibt die Methode eine Liste mit Adressen zurück und fährt mit dem UI-Thread fort. In diesem Aufruf wird 1 Adresse zurückgegeben, da dies die Nummer ist, die an das dritte Argument des GetFromLocationAsync-Aufrufs übergeben wird. Die zurückgegebene Adresse enthält eine Vielzahl von Informationen zum Standort einschließlich der Adresse.

+0

ich Geolocator Plugin in ein Projekt und ein anderes Projekt ohne dieses Plugin zu verwenden. Ich stelle beide Projekte mit dem Xamarin Android Player-Emulator bereit und erhalte Latitude und Longitude, aber nicht die Adresse. Vielleicht sollte ich Google Play Services oder etwas installieren. Vielen Dank im Voraus –

0

Xamarin hat einen großen Tech-Artikel, der Sie durch den gesamten Prozess auf Android mit Geocoder funktioniert.

Ref: https://developer.xamarin.com/recipes/android/os_device_resources/gps/get_current_device_location/

Der Code, der die Lang/Lat tut Lookup-Adresse lautet:

async Task<Address> ReverseGeocodeCurrentLocation() 
{ 
    Geocoder geocoder = new Geocoder(this); 
    IList<Address> addressList = 
     await geocoder.GetFromLocationAsync(_currentLocation.Latitude, _currentLocation.Longitude, 10); 

    Address address = addressList.FirstOrDefault(); 
    return address; 
} 

Zur Info: Die meisten Emulatoren haben eine benutzerdefinierte Einstellung für spöttische Latitude und Longitude so können Sie ändern, es und testen Sie verschiedene Antworten.

dh in Xamarin Android-Player gibt es einen Dialog GPS-Einstellungen:

enter image description here

Es gibt ähnliche Einstellung in GenyMotion Android-Emulator, etc ...

+0

Ich verwende Geolocator-Plugin in einem Projekt und andere Projekt ohne dieses Plugin zu verwenden. Ich stelle beide Projekte mit dem Xamarin Android Player-Emulator bereit und erhalte Latitude und Longitude, aber nicht die Adresse. Vielleicht sollte ich Google Play Services oder etwas installieren. Danke im Voraus –

Verwandte Themen