Quantcast
Channel: Xamarin.Forms — Xamarin Community Forums
Viewing all articles
Browse latest Browse all 58056

Problem with Geolocator and location in Android

$
0
0

I try to geocode, reverse geocode and get location from devices in my project. I use Xamarin.FormsMaps for geocoding with this code:

Geocoder geo = new Geocoder ();
            var pos = new Xamarin.Forms.Maps.Position (63.430961, 10.407761);
            var address = await geo.GetAddressesForPositionAsync (pos);
            foreach (var a in address) {
                Console.WriteLine ("Adres: " + a.ToString());

To find the location of my device I use this in the MainActivity:

var resolverContainer = new SimpleContainer ();
            resolverContainer.Register<IGeolocator, Geolocator>();
            Resolver.SetResolver (resolverContainer.GetResolver ());

And when I want to use the Geolocator I call it like this in my shared project:

var geo = Resolver.Resolve<IGeolocator> ();

To get the location of my device I have this method:

`           var token = new System.Threading.CancellationToken ();
        var geo = Resolver.Resolve<IGeolocator> ();
        geo.StartListening (3000, 0, true);

        geo.PositionError += OnListeningError;
        geo.PositionChanged += OnPositionChanged;

        string lat;
        string lng;

        await geo.GetPositionAsync (10000, token, true)
            .ContinueWith (t => {
                if (t.IsFaulted)
                    Console.WriteLine (((GeolocationException)t.Exception.InnerException).Error.ToString ());
                else if (t.IsCanceled)
                    Console.WriteLine ("Canceled");
                else {
                    lat = "La: " + t.Result.Latitude.ToString ();
                    lng = "Lo: " + t.Result.Longitude.ToString ();
                    Console.WriteLine("Position is: " + lat + ", " + lng);
                }
            }, scheduler);`

This code works fine on my iOS device with iOS 8 installed and on a Samsung Galaxy Active S4 with Android 4.4.2 installed. However with a Samsung Galaxy S2 with 4.1.2 installed this wont work. I dont get any error messages but it just crashes when I try to use the methods. I have targeted Android version on 21 and set the Java heap size to 1G. I have also added permissions. Do anyone have any ideas or tips to how I can maybe do this in a different way?


Viewing all articles
Browse latest Browse all 58056

Trending Articles