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

如何在Android 10中创建公共文件夹/文件

宗涵蓄
2023-03-14

Android Api 29在文件和文件夹方面有很大的变化。到目前为止,我还没有找到在内部存储器中创建一个公共可见的文件夹的方法。我创建的每个文件夹只能由我的应用程序看到。

我编写了一个应用程序来创建数据文件,这些文件将被其他应用程序拾取,例如总指挥官将它们复制到目的地。在我激活Api 29之前,一切都很好。我的一些客户确实使用像素手机,他们使用Android 10。

如何在Android 10中创建一个文件夹和文件是公开的?

这已被弃用:

Environment.getExternalStorageDirectory();
Environment.getExternalStoragePublicDirectory(type);

当我使用

File root = context.getExternalFilesDir(null);

创建的文件只能由我的应用程序查看。如何实现Android 10之前有效的行为?

提前致谢。

共有2个答案

钱元徽
2023-03-14

从Android 10开始,您应该使用SAF,并让用户使用ACTION_OPEN_DOCUMENT_TREE选择目录。

如果你需要一个简单的例子。你可以在这里找到它

或者,当你的应用不是新发布的时,你可以在清单中使用 requestLegacyExternalStorage = true。但是,这不应该用于未来的发布,因为这是Google提供的短期解决方案。

注意:在Android的未来版本中,用户将无法选择整个外部文件目录和下载目录,因此不幸的是,请记住,我们也无法访问这些目录!欲了解更多信息,您可以点击这里

薛华奥
2023-03-14

当我使用< code >文件root = context . getexternalfilesdir(null)时;创建的文件只能由我的应用程序查看

使用存储访问框架的任何应用程序(例如,<code>ACTION_OPEN_DOCUMENT</code>)都可以看到它们,如果用户选择您放置在该目录中的文档。

我编写了一个应用程序来创建其他应用程序可以获取的数据文件

其他应用程序无法访问Android 10上的外部或可移动存储,除了在有限的目录中,如getExternalFilesDir()或通过非文件系统方式(ACTION_OPEN_DOCUMENTMediaStore)。

如何在Android 10中创建一个文件夹和文件是公开的?

上下文中使用getExternalFilesDir()和相关方法。或者,使用ACTION_CREATE_DOCUMENT操作_OPEN_docture_TREE,并使用存储访问框架。在任何一种情况下,生成的文档都可以由其他也使用存储访问框架的应用程序使用。

 类似资料:
  • 我的环境: SQL Server 2012 BI版 本地开发机器 共享网络文件夹和驱动器 null 我试过什么: WorkingDirectory:本地驱动器-解决方案有效 WorkingDirectory:共享文件夹-解决方案不会失败,但不会创建文件。我的帐户对该文件夹具有完全权限。 WorkingDirectory:映射驱动器使用Net USE,但未创建文件。 我已经部署了解决方案并运行了SQ

  • 问题内容: 如何在Java中创建一个空文件夹? 问题答案:

  • 问题内容: 我试图使用 File类 在“ C:/ Temp / Emptyfile”之 类 的目录中创建一个空文件。但是,当我这样做时,它显示了一个错误:“已经创建了文件夹Temp”。否则,它不会为我创造一个。 那么,如何从字面上创建使用Java API的文件夹? 问题答案: 在对象上使用该方法的外观文件:http : //www.roseindia.net/java/beginners/java

  • 4.6.1.3 创建公共读写文件 这是一种文件用法,它允许未指定的大量应用的读写访问。 未指定的大量应用可以读写,意思不用多说了。 恶意软件也可以读取和写入,因此数据的可信度和安全性将永远不会得到保证。 另外,即使在没有恶意的情况下,也不能控制文件中的数据格式或写入的时间。 所以这种类型的文件在功能方面几乎不实用。 如上所述,从安全性和应用设计的角度来看,不可能安全地使用读写文件,因此应该避免使用

  • 我有一个经过验证的谷歌客户端,我想列出其他人公用文件夹中的文件(我认为共享或不共享的文件夹是不相关的,因为它是公用的) 这是我在NodeJS中的代码 注意:文档中没有“folderId”选项:https://developers.google.com/drive/api/v3/reference/files/list-只是一个drivid选项 虽然我将corpa设置为“drive”和drive I

  • 问题内容: import java.io.File; File folder = new File(Environment.getExternalStorageDirectory() + “/TollCulator”); boolean success = true; if (!folder.exists()) { //Toast.makeText(MainActivity.this, “Dire