0

私のアプリでは、電話の連絡先にアクセスしています。だから私はAndroidマシュマロのデバイスで同じのための許可を処理しています。許可ダイアログが期待通りに表示されます。問題:ダイアログの[拒否]ボタンをクリックするたびに、ダイアログが表示されなくなります。ここ は私のコードです:アクティビティのonCreateでAndroid M権限ダイアログが「拒否」のクリックで解除されない

private static final int REQUEST_READ_CONTACTS = 0; 
String[] PERMISSIONS = {Manifest.permission.READ_CONTACTS,,Manifest.permission.WRITE_CONTACTS}; 

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; 
     } 

    } 
} 

問題:私が直面している問題は「拒否」のクリックにあり、許可ダイアログは消されません。助けてください。多くは事前に感謝します。テストに使用

デバイス:Androidのマシュマロの一つの6.0.1

+0

'return'を呼び出す必要はありません – rookieDeveloper

+0

@rookieDeveloper Ok.Removed it。変更はありません。ダイアログはまだ却下されませんでした。 – Rakesh

+0

答えを投稿しました。使用できるかどうかを確認してください – rookieDeveloper

答えて

0

OnePlus私が持っていた問題が再び表示されるように許可対話を引き起こす、拒否ボタンをクリックしていた、同じ活動が再びロードされなりました。

+1

仲間の査読者:これは答えです。問題の原因を説明するのはOPです。 –

関連する問題