Ravi
Ravi

Reputation: 392

how to get the position of user by GPS and if not availabe by Network

I am new in android developing, and so intrested in getting location of users!!!!!

You may know that we can access users location by two types:

GPS (ACCESS_FINE_LOCATON) Network based (ACCESS_COARSE_LOCATION)

My Question is:

I Want to get the location(latittude & longitude) of user by GPS. But, if the user has turned GPS Off/GPS isn't supported, then i want to get user's location by Network, or, Network-based location

.

Hope you understood my question.... Any help is accepted

Upvotes: 0

Views: 407

Answers (3)

Anudeep
Anudeep

Reputation: 1570

Try the following code:

 LocationManager mlocManager; 
        mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
                    mlocListener = new MyLocationListener(); 
        //if condition to check if GPS is available 
if (mlocManager                   .isProviderEnabled(LocationManager.GPS_PROVIDER)) {                         mlocManager.requestSingleUpdate(LocationManager.GPS_PROVIDER, 
                                mlocListener, null); 
                    } 
       else if (mlocManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { 
                        mlocManager.requestSingleUpdate( 
                                LocationManager.NETWORK_PROVIDER, mlocListener, null); 
                    } 


        //this is the class to get the location. 
            public class MyLocationListener implements LocationListener { 

                @Override 
                public void onLocationChanged(Location location) { 
                    // TODO Auto-generated method stub 
                    try { 
    //you may store these values where ever required.  
                        Double latitude =  location.getLatitude();      
                        Double longitude =  location.getLongitude(); 
                    } catch (Exception e) {
                        e.printStackTrace();

                    } 

                } 

                @Override 
                public void onStatusChanged(String provider, int status, Bundle extras) {
                    // TODO Auto-generated method stub 

                } 

                @Override 
                public void onProviderEnabled(String provider) {
                    // TODO Auto-generated method stub 

                } 

                @Override 
                public void onProviderDisabled(String provider) {
                    // TODO Auto-generated method stub 

                } 

            } 

Upvotes: 1

John
John

Reputation: 833

Hope get GPS code helps you.

    if (Common.getIsGPSEnabled()) {
        final LocationManager locationManager = (LocationManager) c.getSystemService(Context.LOCATION_SERVICE);
        LocationListener locationListener;
        locationListener = new LocationListener() {
            public void onLocationChanged(Location location) {  
                myLocation = locationManager.getLastKnownLocation(locationProvider);  
                Toast.makeText(c, "location changed, My location is removed to"
                + myLocation.getLatitude()+","+myLocation.getLongitude(), Toast.LENGTH_LONG).show(); 
                Latitude = myLocation.getLatitude(); 
                Longitude = myLocation.getLongitude();
            }

            public void onStatusChanged(String provider, int status, Bundle extras) {}

            public void onProviderEnabled(String provider) {}

            public void onProviderDisabled(String provider) {}
          };
        locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
        locationManager.requestLocationUpdates(locationProvider, (long)0, (float)0, locationListener); 
        myLocation = locationManager.getLastKnownLocation(locationProvider);
        if(myLocation != null)
        { 
               ///
        }
    }

Upvotes: 1

ianhanniballake
ianhanniballake

Reputation: 199825

When you use the FusedLocationProviderApi as used in the getting the last known location training and receiving location updates training, it will automatically fall back to network location if GPS is not available.

Upvotes: 1

Related Questions