Ikuti langkah-langkah yang disebutkan di bawah ini
1) Buat LocationRequest
sesuai keinginan Anda
LocationRequest mLocationRequest = LocationRequest.create()
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
.setInterval(10 * 1000)
.setFastestInterval(1 * 1000);
2) Buat aLocationSettingsRequest.Builder
LocationSettingsRequest.Builder settingsBuilder = new LocationSettingsRequest.Builder()
.addLocationRequest(mLocationRequest);
settingsBuilder.setAlwaysShow(true);
3) Dapatkan LocationSettingsResponse
Task
menggunakan kode berikut
Task<LocationSettingsResponse> result = LocationServices.getSettingsClient(this)
.checkLocationSettings(settingsBuilder.build());
Catatan: LocationServices.SettingsApi
tidak digunakan lagi, jadi gunakan sebagai SettingsClient
gantinya.
4) Tambahkan a OnCompleteListener
untuk mendapatkan hasil dari Tugas. Setelah Task
selesai, klien dapat memeriksa pengaturan lokasi dengan melihat kode status dari LocationSettingsResponse
objek.
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;
}
}
}
});
KASUS 1:: LocationSettingsStatusCodes.RESOLUTION_REQUIRED
Lokasi tidak diaktifkan tetapi, kita dapat meminta pengguna untuk mengaktifkan lokasi dengan meminta dia untuk mengaktifkan lokasi dengan dialog (dengan memanggil startResolutionForResult
).
KASUS 2:: LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE
Pengaturan lokasi tidak dipenuhi. Namun, kami tidak memiliki cara untuk memperbaiki pengaturan tersebut sehingga kami tidak akan menampilkan dialog.
5) OnActivityResult
kita bisa mendapatkan tindakan pengguna di dialog pengaturan lokasi. RESULT_OK
=> Pengguna menyalakan Lokasi. RESULT_CANCELLED
- Pengguna menolak permintaan pengaturan lokasi.