В моем приложении я получаю доступ к телефонным контактам. Таким образом, я обрабатываю разрешение на то же самое в устройствах с маршевым устройством Android. Диалоговое окно разрешения отображается как ожидалось. Проблема: всякий раз, когда я нажимаю кнопку «Отклонить» в диалоговом окне, диалог не отменяется. Вот мой код:Диалоговое окно разрешения Android M не отклоняется при нажатии «Запретить»
private static final int REQUEST_READ_CONTACTS = 0;
String[] PERMISSIONS = {Manifest.permission.READ_CONTACTS,,Manifest.permission.WRITE_CONTACTS};
В OnCreate активность: метод
if(!requestPermissionForContact(this, PERMISSIONS)){
ActivityCompat.requestPermissions(CurrentActivity.this, PERMISSIONS, REQUEST_READ_CONTACTS);
}
else{
getContactList(); //a method to accesses the contacts
}
requestPermissionForContact определение:
public boolean requestPermissionForContact(Context context,String... permissions){
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(EmergencyContact.this,
Manifest.permission.READ_CONTACTS)){
//Toast.makeText(this,"You gotta allow permission", Toast.LENGTH_LONG).show();
}
return false;
}
}
}
return true;
}
Внутри onRequestPermissionResult:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
//mPresenter.userRespondedForPermissionDialog(requestCode,REQUEST_READ_CONTACTS,grantResults);
switch (requestCode){
case REQUEST_READ_CONTACTS : {
if (grantResults.length >= 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission granted , Access contacts here or do whatever you need.
getContactList(); //Accessing the contacts
}
else{
Toast.makeText(this,"Oops you just denied the permission", Toast.LENGTH_LONG).show();
}
return;
}
}
}
Проблема: проблема, с которой я столкнулся, - это щелчок «Запретить», разрешение не отменяется. Пожалуйста помоги. Спасибо заранее.
Устройство, используемое для теста: OnePlus One с Android 6.0.1 Зефир
нет необходимости называть 'return' – rookieDeveloper
@rookieDeveloper Ok.Removed it. Без изменений. Диалог все еще не был уволен. – Rakesh
Я отправил ответ, проверьте, можете ли вы его использовать – rookieDeveloper