Android11内部存储不在应用目录下创建文件夹
创始人
2024-08-20 11:00:36
0

在Android 11中,应用程序的权限控制变得更加严格,应用程序需要显式请求从设备上的私有目录访问文件的权限。在此之前,我们可以通过获取应用程序的存储权限来创建应用程序目录并放置我们的文件。在Android 11中,这种方法不再奏效。

为了在Android 11中正确地向应用程序目录创建文件夹,我们需要使用新的API:Context.getFilesDir()和Context.getNoBackupFilesDir()方法,以及Context.getExternalFilesDir()方法。

例如,这段代码创建了一个名为“myFolder”的文件夹,它在Android 11及更高版本中位于应用程序目录下:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
    Context context = getApplicationContext();
    String folderName = "myFolder";
    File file = new File(context.getFilesDir(), folderName);
    if (!file.exists()) {
        file.mkdir();
    }
}

Context.getExternalFilesDir()方法类似于之前的存储API,但需要从应用程序的私有目录中请求文件访问权限。因此,这种方法在Android 11中仍然无法创建应用程序目录。

请注意,上面的示例在Android 11及更高版本中使用新API,而在其他版本中仍使用旧的存储API。这是因为新API仅适用于Android 11及更高版本。

在处理文件时,请始终检查设备的Android版本并相应地处理文件路径。

相关内容

热门资讯

安装Pillow时遇到了问题:... 遇到这个问题,可能是因为缺少libwebpmux3软件包。解决方法是手动安装libwebpmux3软...
安装React Native时... 当安装React Native时出现构建错误的情况,可以尝试以下解决方法:确保已经安装了最新版本的C...
安装Rails时构建webso... 在安装Rails时,如果构建websocket-driver时发生错误,可以尝试以下解决方法:更新系...
安装react-native-... 要安装react-native-onesignal并在应用关闭时仍能接收通知,可以按照以下步骤进行:...
安装Python库"... 安装Python库"firedrake"的解决方法如下:打开终端或命令提示符(Windows系统)。...
Apache Nifi在Kub... Apache Nifi可以在Kubernetes上运行,并且已经准备好用于生产环境。下面是一个使用H...
安装React Native时... 安装React Native时可能会出现各种错误,下面是一些常见错误和解决方法的代码示例:Error...
按转换模式过滤日志【%t】。 要按照转换模式过滤日志,可以使用正则表达式来实现。下面是一个示例代码,使用Java语言的Patter...
安装React-Scripts... 这是因为React-Scripts使用Facebook工具包中的一些脚本。 joinAdIntere...
安装QuickUMLS时遇到问... 安装QuickUMLS时遇到问题的解决方法可能因具体问题而异。以下是一些常见问题的解决方法,包含代码...