How to get a reference to LocationManager inside a Fragment

malcolm the4 picture malcolm the4 · Nov 9, 2012 · Viewed 23.7k times · Source

I have a class that extends Fragment and implements LocationListener. When I write

LocationManager myLocalManager =
(LocationManager)getSystemService(Context.LOCATION_SERVICE);

I get an compile time error because the method getSystemService is not a method of Fragment.

What can I do in order to create the LocationManager?

Answer

Rafael T picture Rafael T · Nov 9, 2012

inside your fragment simply call this:

LocationManager mgr = 
(LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);

So you simply get the Activity and call getSystemService() from there

Edit: As the getActivity method is deprecated since API 28 you can just use:

LocationManager mgr = 
    (LocationManager)getContext().getSystemService(Context.LOCATION_SERVICE);