Thực hiện theo các bước được đề cập dưới đây
1) Tạo một LocationRequesttheo ý muốn của bạn
LocationRequest mLocationRequest = LocationRequest.create()
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
.setInterval(10 * 1000)
.setFastestInterval(1 * 1000);
2) Tạo mộtLocationSettingsRequest.Builder
LocationSettingsRequest.Builder settingsBuilder = new LocationSettingsRequest.Builder()
.addLocationRequest(mLocationRequest);
settingsBuilder.setAlwaysShow(true);
3) Nhận LocationSettingsResponse Taskbằng cách sử dụng mã sau
Task<LocationSettingsResponse> result = LocationServices.getSettingsClient(this)
.checkLocationSettings(settingsBuilder.build());
Lưu ý: LocationServices.SettingsApi không được dùng nữa nên hãy sử dụng SettingsClientThay vào đó.
4) Thêm a OnCompleteListenerđể nhận kết quả từ Nhiệm vụ. Khi Taskhoàn thành, khách hàng có thể kiểm tra cài đặt vị trí bằng cách xem mã trạng thái từ LocationSettingsResponseđối tượng.
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;
}
}
}
});
TRƯỜNG HỢP 1: LocationSettingsStatusCodes.RESOLUTION_REQUIRED Vị trí không được bật nhưng chúng tôi có thể yêu cầu người dùng bật vị trí bằng cách nhắc anh ta bật vị trí bằng hộp thoại (bằng cách gọi startResolutionForResult).

TRƯỜNG HỢP 2:: LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE Cài đặt vị trí không hài lòng. Tuy nhiên, chúng tôi không có cách nào để sửa cài đặt nên chúng tôi sẽ không hiển thị hộp thoại.
5) OnActivityResult chúng tôi có thể nhận được hành động của người dùng trong hộp thoại cài đặt vị trí. RESULT_OK=> Người dùng đã bật Vị trí.RESULT_CANCELLED- Người dùng đã từ chối yêu cầu thiết lập vị trí.