Сообщение api 23 нам нужно динамически проверить разрешение. в соответствии с моим пониманием поток должен быть таким, как этоКак этот код работает для проверки разрешений?
1. является разрешением, предоставленным пользователем? Если нет -> мы можем либо показать диалоговое окно запроса, либо не следует (из-за его выбора в прошлом «не сеять снова».
если да -> выполняют функции, для которых требовалось разрешение
Теперь код в соответствии с Документами Google является:..
// Here, thisActivity is the current activity
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
Manifest.permission.READ_CONTACTS)) {
// Show an explanation to the user *asynchronously* -- don't block
// this thread waiting for the user's response! After the user
// sees the explanation, try again to request the permission.
} else {
// No explanation needed, we can request the permission.
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.READ_CONTACTS},
MY_PERMISSIONS_REQUEST_READ_CONTACTS);
// MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
// app-defined int constant. The callback method gets the
// result of the request.
}
}
shouldShowRequestPermissionRationale() этот метод возвращает истину, если приложение запросило это разрешение ранее, и пользователь отклонил запрос. Примечание: если пользователь tur в прошлом отказал запрос на разрешение и выбрал опцию «Не спрашивать снова» в диалоговом окне системы запроса разрешения, этот метод возвращает false. Метод также возвращает false, если политика устройства запрещает приложению иметь такое разрешение.
Теперь, согласно мне, должно быть "!" оператора во втором выражении if. Пожалуйста, скажите мне, где я ошибаюсь?
Что вы думаете об этом? –
@Adan_SL вопрос в том, должен ли быть «!» оператор во втором утверждении if? – rajat44