Виконайте вказані нижче дії
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
- Користувач відхилив запит налаштування місця.