当前位置: 首页 > 知识库问答 >
问题:

Android|在Android 11上的外部存储根目录中创建文件夹

辛才俊
2023-03-14

众所周知,谷歌颠覆了Android11的授权概念,并彻底改变了它。

我看了Android留档丛林,但没有找到答案的问题是否仍然可以在外部存储(名为 /storage/emulated/0/)的根目录中创建一个文件夹。如果是,如何?

我的应用在Android上写

临时解决办法可以是这样的:

 public static String getStorageDir(){

        if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
            String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).getAbsolutePath() + "/myNewFolder";
            ....

        } else {

        String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/myNewFolder";
        ...
    }

但这并不理想。如果用户从Android10切换到Android11,那么就有一个大问题。我需要什么额外的代码才能在Android 11上的根目录下创建文件夹?

据称Google Play直接拒绝“管理所有文件”的权限。这是真的吗?现在仍然如此吗?有人有这方面的经验吗?

共有1个答案

杨晓博
2023-03-14

使用ACTION_OPEN_DOCUMENT_TREE让用户创建想要的目录。

 类似资料:
  • 最近我更新了我的智能手机到Android11,我注意到我的一个应用程序在创建外部存储目录时崩溃了。我读过Android11文档,这里是。很奇怪,因为当我打开Android/Data dir时,有很多应用程序文件夹,所以有可能这样做,或者有应用程序在更新之前创建的文件夹?

  • 我在牛轧糖上开发了一个应用程序,可以在外部存储中创建一个目录。 我以前是这样做的: 此代码似乎不适用于API 26(Android Oreo)。该目录未创建。 我如何才能实现同样的目标,最好是在API 21到API 26的所有android版本上都能实现?

  • 问题内容: 我的开发电话正在运行。 在我的应用程序中,我试图在外部存储上创建一个文件夹,该文件夹将存储我的应用程序的调试信息。基本上,它将包含应用程序执行的所有命令,因此,当用户遇到问题时,我可以选择使它们从debug文件夹发送信息给我进行分析。 我首先尝试将文件写入文件夹,但发现创建文件夹时出错。最初,我使用,然后又移至也不起作用。 我有我的清单。 这是用于创建文件夹的代码: 这是我也尝试过的:

  • 在Android11中引入了范围存储。根据文档,保存非媒体文件(如PDF)应使用存储访问框架。因此,在使用存储访问框架时,用户需要通过系统文件选择器选择位置来保存非媒体文件(PDF)。但如果你在Android11上使用whatsapp应用程序,并尝试保存PDF文件,它不会要求用户选择位置。默认情况下会将pdf文件保存到外部文档目录。我想在我的应用程序中复制相同的行为。有人能带我到这里来吗。

  • 我正在尝试创建一个目录和文件,以便可以存储从Internet下载的文件。但是,我无法在外部公共存储中创建目录和文件。如果我写入外部私有存储(应用程序的特定存储位置),我完全可以这样做。 代码如下: 上面的代码导致: 09-13 05:33:45.258 5867-5867/? I/S。出来﹕ /存储/0CED-0F09/图片 09-13 05:33:45.260 5867-5867/? I/S。出

  • 我面临这个问题,我不知道该怎么办。我们将一个项目从git导入Intellij,当我们执行mvn clean install时,maven开始在项目根目录上创建所有依赖项文件夹。这只发生在我们的一台电脑上,我们不知道为什么: 你知道怎么解决这个问题吗?谢谢使用设置更新。xml Intellij