Network location provider not giving location android

11,178

Solution 1

Make sure you enable Location Services in Settings! That should be the problem. It might be disabled (and this setting will usually be found in Location and Security in Settings)

Let me know if it works!

Solution 2

Is your network provider enabled?

boolean network_enabled;
try {
    network_enabled = locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
} catch(Exception ex) {
   ex.printStackTrace();
}
Share:
11,178
nilkash
Author by

nilkash

Updated on June 04, 2022

Comments

  • nilkash
    nilkash almost 2 years

    I am developing a small android application in which I want to find out the user's current location by using the network provider. I tried this in following ways but it's not giving me any output :

    networklocationManager = (LocationManager) this
            .getSystemService(Context.LOCATION_SERVICE);
    // Define a listener that responds to location updates
    LocationListener networklocationListener = new LocationListener() {
    
        public void onLocationChanged(Location location) {
            Log.i("********************************",
                    "this is my network location " + location);
            String Location_text = "NETWORK LOCATION latitude:"
                    + location.getLatitude() + " longitude:"
                    + location.getLatitude();
            network_location.setText(Location_text);
        }
    
        public void onStatusChanged(String provider, int status,
                Bundle extras) {}
    
        public void onProviderEnabled(String provider) {}
    
        public void onProviderDisabled(String provider) {}
    };
    // Register the listener with the Location Manager to receive location
    // updates
    networklocationManager
            .requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0,
                    networklocationListener);
    

    I gave permissions in my manifest file like this

     <uses-permission 
        android:name="android.permission.INTERNET" />
    <uses-permission
        android:name="android.permission.ACCESS_COARSE_LOCATION" />
     <uses-permission
        android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    

    Is there any thing which I am missing ? Is this the correct way? Need help. Thank you...


    public class MainActivity extends Activity implements LocationListener {
    
        private TextView latituteField;
        private TextView longitudeField;
        private LocationManager gpslocationManager;
        private LocationManager networklocationManager;
        private LocationManager networklocationManager1;
        private String provider;
        private TextView gps_location;
        private TextView network_location;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            gps_location = (TextView) findViewById(R.id.gps_location);
            network_location = (TextView) findViewById(R.id.network_location);
            networkLocation();
        }
    
        public void networkLocation() {
            networklocationManager = (LocationManager) this
                    .getSystemService(Context.LOCATION_SERVICE);
            LocationListener networklocationListener = new LocationListener() {
    
                public void onLocationChanged(Location location) {
                    Log.i("********************************",
                            "this is my network location " + location);
                    String Location_text = "NETWORK LOCATION latitude:"
                            + location.getLatitude() + " longitude:"
                            + location.getLatitude();
                    network_location.setText(Location_text);
                }
    
                public void onStatusChanged(String provider, int status,
                        Bundle extras) {}
    
                public void onProviderEnabled(String provider) {}
    
                public void onProviderDisabled(String provider) {}
            };
            networklocationManager
                    .requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0,
                            networklocationListener);
        }
    }