Yes the "Wi-Fi & mobile network location" affect the accuracy of the location, on certains location... If this is disabled, sometimes you can be hard to locate because GPS have some trouble to geolocate you at some places (like in a city with a lot of building for example). So the "Wi-Fi & mobile network location" helps.
You can't ensure this settings is enable, but you can know it by code.
Take a look at this code to check if "network" location is available :
What is the simplest and most robust way to get the user's current location on Android?
EDIT :
try {
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
networkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
} catch (Exception ex) {
// catch Exception
}
To Answer your comments :
The GPS provider is used in the Fuse Location Provider. The documentation of LocationRequest
says that :
"Applications cannot specify the exact location sources, such as GPS, that are used by the LocationClient." It's the same GPS provider, but not handle by you in this case.
About the Network Provider, I found this in the LocationClient
documentation (for the addGeofences
method :
"In case network location provider is disabled by the user, the geofence service will stop updating, all registered geofences will be removed and an intent is generated by the provided pending intent."
My guess is, if the Geofence service can't access to this provider if it's disabled by the user, the LocationClient
neither.