1、问题原因:
安卓11开始,强化了对SD卡读写的管理,引入了MANAGE_EXTERNAL_STORAGE权限,而之前的WRITE_EXTERNAL_STORAGE已经失效了。
并且MANAGE_EXTERNAL_STORAGE权限只能跳转设置页面申请。
2、解决方案
1、添加 <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
2.判断是否有MANAGE_EXTERNAL_STORAGE权限,如果没有跳转设置界面申请。
3.如果有则直接进行读写
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) {
Intent intent = new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
startActivity(intent);
return;
}
//TODO 读写
return;
}