Следуйте инструкциям, указанным ниже
1) Создайте по LocationRequestсвоему желанию
LocationRequest mLocationRequest = LocationRequest.create()
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
.setInterval(10 * 1000)
.setFastestInterval(1 * 1000);
2) СоздайтеLocationSettingsRequest.Builder
LocationSettingsRequest.Builder settingsBuilder = new LocationSettingsRequest.Builder()
.addLocationRequest(mLocationRequest);
settingsBuilder.setAlwaysShow(true);
3) Получить LocationSettingsResponse Taskиспользуя следующий код
Task<LocationSettingsResponse> result = LocationServices.getSettingsClient(this)
.checkLocationSettings(settingsBuilder.build());
Примечание: LocationServices.SettingsApi не рекомендуется использовать SettingsClientвместо.
4) Добавьте, OnCompleteListenerчтобы получить результат от Задачи. По Taskзавершении клиент может проверить настройки местоположения, посмотрев на код состояния LocationSettingsResponseобъекта.
result.addOnCompleteListener(new OnCompleteListener<LocationSettingsResponse>() {
@Override
public void onComplete(@NonNull Task<LocationSettingsResponse> task) {
try {
LocationSettingsResponse response =
task.getResult(ApiException.class);
} catch (ApiException ex) {
switch (ex.getStatusCode()) {
case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
try {
ResolvableApiException resolvableApiException =
(ResolvableApiException) ex;
resolvableApiException
.startResolutionForResult(MapsActivity.this,
LOCATION_SETTINGS_REQUEST);
} catch (IntentSender.SendIntentException e) {
}
break;
case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
break;
}
}
}
});
СЛУЧАЙ 1: LocationSettingsStatusCodes.RESOLUTION_REQUIRED Местоположение не включено, но мы можем попросить пользователя включить местоположение, предложив ему включить местоположение в диалоговом окне (позвонив startResolutionForResult).

СЛУЧАЙ 2:: LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE Настройки местоположения не подходят. Однако у нас нет возможности исправить настройки, поэтому мы не будем показывать диалог.
5) OnActivityResult мы можем получить действие пользователя в диалоговом окне настроек местоположения. RESULT_OK=> Пользователь включил Местоположение. RESULT_CANCELLED- Пользователь отклонил запрос на настройку местоположения.