方式一:把targetSdkVersion 设置为22;
方式二:如果设置为22以上:
方法1.
那么需要动态申请权限:
申请SDCard权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
// 提示用户如果想要正常使用,要手动去设置中授权。
tips("提示:", "请在 设置-应用管理 中开启此应用的储存授权。");
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 100);
}
}else {
// 进行正常操作
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) {
if (requestCode == 100) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 进行正常操作。
} else {
tips("提示:", "请在 设置-应用管理 中开启此应用的储存授权。");
}
}
}
方法2.
用这个权限库https://github.com/hotchemi/PermissionsDispatcher