if
(!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
LocationRequest locationRequest = LocationRequest.create();
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setInterval(
5000
);
locationRequest.setFastestInterval(
1000
);
LocationSettingsRequest.Builder locationSettingsRequestBuilder
=
new
LocationSettingsRequest.Builder();
locationSettingsRequestBuilder.addLocationRequest(locationRequest);
locationSettingsRequestBuilder.setAlwaysShow(
true
);
SettingsClient settingsClient = LocationServices.getSettingsClient(getActivity());
Task<LocationSettingsResponse> task
= settingsClient.checkLocationSettings(locationSettingsRequestBuilder.build());
task.addOnSuccessListener(getActivity(),
new
OnSuccessListener<LocationSettingsResponse>() {
@Override
public
void
onSuccess(LocationSettingsResponse locationSettingsResponse) {
}
});
task.addOnFailureListener(getActivity(),
new
OnFailureListener() {
@Override
public
void
onFailure(
@NonNull
Exception e) {
if
(e
instanceof
ResolvableApiException){
try
{
ResolvableApiException resolvableApiException = (ResolvableApiException) e;
resolvableApiException.startResolutionForResult(getActivity(),REQUEST_CHECK_SETTINGS);
}
catch
(IntentSender.SendIntentException ex) {
ex.printStackTrace();
}
}
}
});