Wykonaj czynności wymienione poniżej
1) Utwórz LocationRequestzgodnie ze swoim życzeniem
LocationRequest mLocationRequest = LocationRequest.create()
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
.setInterval(10 * 1000)
.setFastestInterval(1 * 1000);
2) Utwórz plikLocationSettingsRequest.Builder
LocationSettingsRequest.Builder settingsBuilder = new LocationSettingsRequest.Builder()
.addLocationRequest(mLocationRequest);
settingsBuilder.setAlwaysShow(true);
3) Pobierz LocationSettingsResponse Taskponiższy kod
Task<LocationSettingsResponse> result = LocationServices.getSettingsClient(this)
.checkLocationSettings(settingsBuilder.build());
Uwaga: LocationServices.SettingsApi jest przestarzałe, więc użyj SettingsClientZamiast tego.
4) Dodaj, OnCompleteListeneraby uzyskać wynik z zadania. Po Taskzakończeniu klient może sprawdzić ustawienia lokalizacji, patrząc na kod stanu z LocationSettingsResponseobiektu.
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;
}
}
}
});
PRZYPADEK 1:: LocationSettingsStatusCodes.RESOLUTION_REQUIRED Lokalizacja nie jest włączona, ale możemy poprosić użytkownika o włączenie lokalizacji, zachęcając go do włączenia lokalizacji za pomocą okna dialogowego (dzwoniąc startResolutionForResult).

PRZYPADEK 2:: LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE ustawienia lokalizacji są niezadowalające. Nie mamy jednak możliwości naprawienia ustawień, więc nie pokażemy tego okna.
5) OnActivityResult możemy uzyskać akcję użytkownika w oknie dialogowym ustawień lokalizacji. RESULT_OK=> Użytkownik włączył lokalizację. RESULT_CANCELLED- Użytkownik odrzucił prośbę o ustawienie lokalizacji.