androidgoogle-mapsdictionarygeolocationuserlocation

Getting 0.0 for latitude and longitude while showing current location in map


I am using the following code to get my current location. But the problem I am facing is, it always returns 0.0 for latitude and longitude. I have turned on the GPS settings in the phone and set all the permissions. But still I am facing this.

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

customLocationListener = new CustomLocationListener();

locationManager.requestLocationUpdates(

        LocationManager.GPS_PROVIDER,

        0,

        0,

        customLocationListener);

class CustomLocationListener implements LocationListener{ ............

      public void onLocationChanged(Location argLocation) { 

         if(location != null) {     

        int latitude=(int)(argLocation.getLatitude()*1E6);   

        int longitude=(int)(argLocation.getLongitude()*1E6);


              }
       } ........ }

Do any one of you know why?

Note : My activity extends MapActivity not Location Listener


Solution

  • try this way

    locationManager = (LocationManager) context
                    .getSystemService(Context.LOCATION_SERVICE);
    
    
            Criteria locationCritera = new Criteria();
            String providerName = locationManager.getBestProvider(locationCritera,
                    true);
            if(providerName!=null)
                location = locationManager.getLastKnownLocation(providerName);
    
            locationListener = new MyLocationListener();
    
            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,
                    0, locationListener);
    

    in mylocationlistener set your location object

    private class MyLocationListener implements LocationListener {
    
        public void onLocationChanged(Location loc) {
    
            if (loc != null) {
                location = loc; 
    
            }
        }
    
        public void onProviderDisabled(String provider) {
    
        }
    
        public void onProviderEnabled(String provider) {
        }
    
        public void onStatusChanged(String provider, int status, Bundle extras) {
        }
    }