2

Android 6.0 ile çalışma zamanı izni istemeye çalışıyorum. Bu benim kodudur: Her zaman onRequestPermissionsResult benim "Reddedilen İzin" söylerİzin READ_EXTERNAL_STORAGE her zaman reddedildi

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

. Bu kodu ile denedim ve çalıştı.

cevap

0

Sanal aygıtımı Genymotion içinde yeniden başlatarak sorunumu çözdüm.

3

Android paketini izinlerinize eklemeyi deneyin. Böyle bir şey (bu harici depolama yazma içindir): callback'inde için

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

Sen daha fazla bilgi için bu SO answer başvurabilir.

İlgili konular