如图所示,在mainfest文件中声明了SD卡的读和写权限,仍旧报错:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
安卓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();
}
}