Rahul Raj
Rahul Raj

Reputation: 367

Unable to get the location updates in monodroid

I am trying to get the location in my Android app as follows

LocationManager lmanager = (LocationManager)context.GetSystemService(Context.LocationService);
if (lmanager.IsProviderEnabled(LocationManager.NetworkProvider))
 {
  Location currentLoc = lmanager.GetLastKnownLocation(LocationManager.NetworkProvider);
}

I tried with LocationManager.gpsProvider also instead of the Network provider.

In all the cases I am getting a null reference exception for currentLoc.

Upvotes: 0

Views: 503

Answers (1)

Greg Shackles
Greg Shackles

Reputation: 10139

The GetLastKnownLocation() method returns the last location it knew about, which could be null if it has never received any updates before. I think what you want to do here is listen for location updates, and then respond to them once they come in. You can do this by implementing the ILocationListener interface:

class MyLocationListener : Java.Lang.Object, ILocationListener
{
    public void OnLocationChanged(Location location)
    {
    }

    public void OnProviderDisabled(string provider)
    {
    }

    public void OnProviderEnabled(string provider)
    {
    }

    public void OnStatusChanged(string provider, Availability status, Bundle extras)
    {
    }
}

In your activity you can declare that you'd like to use this class to start listening for updates like this:

var locationManager = (LocationManager)GetSystemService(LocationService);
var locationListener = new MyLocationListener();

locationManager.RequestLocationUpdates(LocationManager.NetworkProvider, 5000, 2, locationListener);

Upvotes: 1

Related Questions