0

В моем приложении я получаю доступ к телефонным контактам. Таким образом, я обрабатываю разрешение на то же самое в устройствах с маршевым устройством 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 Зефир

+0

нет необходимости называть 'return' – rookieDeveloper

+0

@rookieDeveloper Ok.Removed it. Без изменений. Диалог все еще не был уволен. – Rakesh

+0

Я отправил ответ, проверьте, можете ли вы его использовать – rookieDeveloper

ответ

0

Этот вопрос я был на нажатие кнопки Запретить, та же деятельность получал загружен снова, что вызывает диалог разрешения появляться снова.

+1

Рецензенты: этот _is_ ответ. Именно ОП объясняет, что вызвало проблему. –

Смежные вопросы