如图所示,在mainfest文件中声明了SD卡的读和写权限,仍旧报错:

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

android授权读写权限 android读写sd卡权限_数组

安卓23.0版本以上,不仅仅要设置上面的权限,还要在对SD卡有读写操作的地方授权

 
 //判断是否6.0以上的手机   不是就不用 
 
 if 
 (Build.VERSION.SDK_INT>= 
 23 
 ){ 
 
 //判断是否有这个权限 
 
 if 
 (ContextCompat.checkSelfPermission(Activity. 
 this 
 ,  
 
     Manifest.permission.WRITE_EXTERNAL_STORAGE)!=PackageManager.PERMISSION_GRANTED){ 
 
 //2、申请权限: 参数二:权限的数组;参数三:请求码 
 
        
 ActivityCompat.requestPermissions(Activity. 
 this 
 , 
 new 
 String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 
 
         REQUEST_WRITE); 
 
     
 } 
 else 
 { 
 
                
 writeToSdCard(); 
 
            
 } 
 
 }  
 
 

 
   
 //判断授权的方法  授权成功直接调用写入方法  这是监听的回调 
 
   
 //参数  上下文   授权结果的数组   申请授权的数组 
 
 @Override 
 
      
 public 
 void 
 onRequestPermissionsResult( 
 int 
 requestCode,  
 @NonNull 
 String[] permissions,  
 @NonNull 
 int 
 [] grantResults) { 
 
          
 super 
 .onRequestPermissionsResult(requestCode, permissions, grantResults); 
 
          
 if 
 (requestCode==REQUEST_WRITE&&grantResults[ 
 0 
 ]== PackageManager.PERMISSION_GRANTED){ 
 
              
 writeToSdCard(); 
 
          
 } 

    
 
      
 }