创建没有管理所有文件权限的目录
Create directory without manage all files permission
如何在没有管理所有文件权限的情况下在 ( /storage/emulated/0/ )
中创建目录。
这是我的代码:
File myFolder=new File(Environment.getExternalStorageDirectory(),"testDir");
if(!myFolder.exists() || myFolder.isFile()){
if(myFolder.isFile()){
Toast.makeText(getApplicationContext(), "'testDir' exists as file", Toast.LENGTH_LONG).show();
return;
}
try{
myFolder.mkdir();
Toast.makeText(getApplicationContext(), "Directories created successfully", Toast.LENGTH_SHORT).show();
} catch(Exception e){
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
}
在 android 11 上它不起作用,因为它需要管理所有文件权限。
从 SDK 30 开始,您无法在不使用 MANAGE_EXTERNAL_STORAGE 的情况下访问所有文件系统。
如果您的应用属于以下类别,您可以申请此权限:
- 文件管理
- 备份和恢复应用程序
- 防病毒应用程序
- 文档管理应用程序
- 搜索(在设备上)
- Disk/Folder 加密和锁定
- 设备Migration/Phone传输
如果您的应用是照片、视频编辑应用或类似应用,那么您不需要此权限。您可以简单地使用 SAF 或媒体目录,如 DCIM、下载、视频等...并在那里创建您的文件夹以保存您的图像、视频等。其他方式,您可以使用 Android/ 媒体或数据文件夹。
如何在没有管理所有文件权限的情况下在 ( /storage/emulated/0/ )
中创建目录。
这是我的代码:
File myFolder=new File(Environment.getExternalStorageDirectory(),"testDir");
if(!myFolder.exists() || myFolder.isFile()){
if(myFolder.isFile()){
Toast.makeText(getApplicationContext(), "'testDir' exists as file", Toast.LENGTH_LONG).show();
return;
}
try{
myFolder.mkdir();
Toast.makeText(getApplicationContext(), "Directories created successfully", Toast.LENGTH_SHORT).show();
} catch(Exception e){
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
}
在 android 11 上它不起作用,因为它需要管理所有文件权限。
从 SDK 30 开始,您无法在不使用 MANAGE_EXTERNAL_STORAGE 的情况下访问所有文件系统。
如果您的应用属于以下类别,您可以申请此权限:
- 文件管理
- 备份和恢复应用程序
- 防病毒应用程序
- 文档管理应用程序
- 搜索(在设备上)
- Disk/Folder 加密和锁定
- 设备Migration/Phone传输
如果您的应用是照片、视频编辑应用或类似应用,那么您不需要此权限。您可以简单地使用 SAF 或媒体目录,如 DCIM、下载、视频等...并在那里创建您的文件夹以保存您的图像、视频等。其他方式,您可以使用 Android/ 媒体或数据文件夹。