2

拒否されます。 これは私のコードです:許可READ_EXTERNAL_STORAGEは、常に私は、Android 6.0でのランタイム許可を要求しようとしている

private void enablePermission() { 
    String[] PERMISSIONS = { Manifest.permission.READ_EXTERNAL_STORAGE}; 

    if (!hasPermissions(this, PERMISSIONS)) { 
     ActivityCompat.requestPermissions(this, PERMISSIONS, 
       PERMISSION_ALL); 
    } 
} 


public static boolean hasPermissions(Context context, String... permissions) { 

    for (String permission : permissions) { 
     if (ContextCompat.checkSelfPermission(context, permission) != 
       PackageManager.PERMISSION_GRANTED) { 
      return false; 
     } 
    } 

    return true; 
} 


@Override 
public void onRequestPermissionsResult(int requestCode, String[] 
     permissions, int[] grantResults) { 
    switch (requestCode) { 
     case PERMISSION_ALL: 
      if (grantResults.length > 0 && grantResults[0] == 
        PackageManager.PERMISSION_GRANTED) { 
       Log.d("Permission", "Granted"); 
      } else { 
       Log.d("Permission", "Denied"); 
      } 
    } 
} 

それは常にonRequestPermissionsResultで私の「アクセス許可が拒否されました」と伝えます。私はACCESS_FINE_LOCATIONでこのコードを試してみました。

答えて

0

私はGenymotionで私の仮想デバイスを再起動することにより、私の問題を解決しました。

3

はあなたの権限でAndroidのパッケージを追加してみてください。このような何か(これは、外部ストレージを書くためです):コールバックの

public boolean isStoragePermissionGranted() { 
    if (Build.VERSION.SDK_INT >= 23) { 
     if (checkSelfPermission(android.Manifest.permission. READ_EXTERNAL_STORAGE) 
       == PackageManager.PERMISSION_GRANTED) { 
      Log.v(TAG,"Permission is granted"); 
      return true; 
     } else { 

      Log.v(TAG,"Permission is revoked"); 
      ActivityCompat.requestPermissions(this, new String[]{Manifest.permission. READ_EXTERNAL_STORAGE}, 1); 
      return false; 
     } 
    } 
    else { //permission is automatically granted on sdk<23 upon installation 
     Log.v(TAG,"Permission is granted"); 
     return true; 
    } 


} 

@Override 
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 
     super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
     if(grantResults[0]== PackageManager.PERMISSION_GRANTED){ 
      Log.v(TAG,"Permission: "+permissions[0]+ "was "+grantResults[0]); 
      //resume tasks needing this permission 
     } 
    } 

あなたはより多くの情報のため、このSO answerを参照することができます。

関連する問題