private boolean requestStorage()
{
// Android 11 (API 30) 及以上版本的处理逻辑
if(Build.VERSION.SDK_INT >= 30)
{
if(!Environment.isExternalStorageManager()) {
Intent intent = new Intent(Settings.ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS);
Uri uri = Uri.fromParts("package", getCallingActivity().getPackageName(), null);
intent.setData(uri);
startActivity(intent);
Toast.makeText(this, "请在设置中授予所有文件访问权限", Toast.LENGTH_LONG).show();
return false;
}
else{
return true;
}
}
// 对于 Android 10 (API 29) 及以下版本,使用旧的运行时权限申请方式
else
{
String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
requestPermissions(permissions,1001);
Toast.makeText(this, "请授予存储权限以继续", Toast.LENGTH_SHORT).show();
return false;
}
}