2016-05-25 15 views
0

こんにちは、私のonMenuItemClick内でActivityCompat.requestPermissionを呼び出して、WRITE_EXTERNAL_STORAGE権限を許可しています。ただし、ActivityCompat.requestPermissionsは実行されません。ActivityCompat.requestPermission onMenuItemClick内で呼び出されたときにダイアログが表示されない

私の目標は、私は私のマニフェスト

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
     android:maxSdkVersion="18"/> 

で定義されており、ここで私は

   case R.id.id_captura: 
        if (ContextCompat.checkSelfPermission(ChatActivity.this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { 
         dispatchTakePictureIntent(); 
        } else { 
         if (ActivityCompat.shouldShowRequestPermissionRationale(ChatActivity.this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) { 

         } else { 
          ActivityCompat.requestPermissions(ChatActivity.this, 
            new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_EXTERNAL_STORAGE_CTE 
          ); 
         } 
        } 
        break; 

onMenuItemClick

の内側に電話し、ここで私のonRequestPermissionsResult

である私のコードでいるAPI 23

です

@Override 
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { 
    switch (requestCode) { 
     case WRITE_EXTERNAL_STORAGE_CTE: { 
      if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
       dispatchTakePictureIntent(); 
      } else { 
       AlertDialog.Builder alertDialog = new AlertDialog.Builder(this).setTitle("Permissions").setMessage("Permissions not granted ").setPositiveButton("Accept", null); 
       alertDialog.show(); 
      } 
      return ; 
     } 
    } 
} 

Aditionally私は

private final int WRITE_EXTERNAL_STORAGE_CTE = 1; 
+0

これまでにクリックしたことがない場合は、ダイアログでもう一度質問しないでください:3? –

答えて

0

を定義された問題は - 私のターゲットAPI 23は、アクセス権が実行時に要求されているだけでなく、マニフェストファイルで宣言しなければならないのでandroid:maxSdkVersion="18"ました。 その行を削除するとジョブが終了しました。

関連する問題