Я использую FusedLocationProviderClient в проекте.В методе onCreate у меня вызывается следующий фрагмент:
private void setupFusedLocationProvider() {
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
LocationRequest locationRequest = new LocationRequest();
locationRequest.setInterval(10000);
locationRequest.setFastestInterval(5000);
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
builder.addLocationRequest(locationRequest);
builder.setAlwaysShow(true);
SettingsClient client = LocationServices.getSettingsClient(this);
Task<LocationSettingsResponse> task = client.checkLocationSettings(builder.build());
task.addOnSuccessListener(this, locationSettingsResponse -> locationPermissionsSatisfied());
task.addOnFailureListener(this, e -> {
if (e instanceof ResolvableApiException) {
try {
ResolvableApiException resolvable = (ResolvableApiException) e;
resolvable.startResolutionForResult(Activity.this,
REQUEST_CHECK_LOCATION_SETTINGS);
} catch (IntentSender.SendIntentException sendEx) {
//Ignore
}
}
});
}
Проблема в том, что даже при очистке или удалении кэша приложение не отображает диалоговое окно с запросом правильных настроек разрешений расположения: onSuccessListener вызывается каждый раз (пока не заданы права на расположение).Я использую последние сервисы Google apis.
Мой манифест содержит эти 2:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />