Для точного местоположения вам нужно использовать GPS, для менее точного местоположения вы можете использовать NETWORK_PROVIDER (с различной точностью, в зависимости от плотности сотовой сети Nework).
Я думаю, что вам может потребоваться определить LocationManager в onCreate
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
или для сетевого провайдера:
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
Этот класс обеспечивает доступ к системным службам определения местоположения. Эти службы позволяют приложениям получать периодические обновления географического местоположения устройства или запускать заданное приложением намерение, когда устройство входит в близость определенного географического местоположения.
Marco