- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我读到我必须提前为 Android Q 版本准备我的应用程序,因为如果他们不撤销管理这些文件的新方法,那么对应用程序拥有的目录之外的文件的常见读/写访问可能会被弃用.
幸运的是,我没有那么多代码行需要更改。
事实上,存储访问框架似乎存在一些问题。它来自 Kitkat,我看到了(我不知道)。否则我的代码是错误的。
我不能简单地让用户在云存储上选择一个文件夹来获取 Uri 作为返回,进一步填充该文件夹。
当我使用在
找到的示例代码时并将其放在基本 Activity 应用程序(IDE 创建的示例默认应用程序)中,恰好用户无法选择云存储根目录,只能选择磁盘位置。它在 Kotlin 中,但我将它翻译成 Java 而没有改变它。这不是 Java 问题吗,因为我也尝试了 Kotlin 版本。
[ 我用一些技巧编写了其他代码,这些代码至少会导致在 onActivityResult 方法中返回云文件夹 Uri。它包括使用不同的 Intent 操作,但它仍然不能满足我的目的,中间件不喜欢它所以它中断了 Storage Access Framework - failing to obtain document tree from uri (returned from Drive app) ]
在这两种情况下,我都有相同的路径:
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path name="filesPath" path="/"/>
<external-path name="externalPath" path="/"/>
<external-files-path name="externalFilesPath" path="/"/>
</paths>
如何让用户选择云提供商上的文件夹以及如何获取 uri?
最佳答案
DocumentsProvider
可以选择是否支持 ACTION_OPEN_DOCUMENT_TREE
甚至 ACTION_CREATE_DOCUMENT
标志 FLAG_SUPPORTS_IS_CHILD
和 FLAG_SUPPORTS_CREATE
分别。
Google 云端硬盘目前不支持 ACTION_OPEN_DOCUMENT_TREE
,因此无法选择它。
我相信 Nextcloud 支持 ACTION_OPEN_DOCUMENT_TREE
,所以这可能会有所帮助。
I wrote other code with some hacks that at least lead to having the cloud folder Uri back in the onActivityResult method. It encompasses using a different intent Action but it still does not serve my purposes, the middleware doesn't like it so it breaks Storage Access Framework - failing to obtain document tree from uri (returned from Drive app)
是的。然后将返回的 URI 传递给提供商(在本例中为 Google Drive),提供商最终决定返回哪些文档。由于云端硬盘不支持这样的子关系,因此无法正常工作。
在 Ian Lake 的博文 Building a DocumentsProvider 中有更多详细信息.
关于android - 使用 ACTION_OPEN_DOCUMENT_TREE 时,存储访问框架不显示云根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56539920/
我想为我的应用程序提供 SD 卡的写入权限。我正在尝试使用存储访问框架来获取权限。 但是当我使用以下代码启动 Activity 时。 startActivityForResult(new Intent
我看到很多关于设置开始的问题 uri为 Intent.ACTION_OPEN_DOCUMENT_TREE但所有这些都需要一个 uri这是因为之前使用过该文件夹选择器。 我想要做的是将我的用户直接发送到
我正在尝试从连接到我的 Google Pixel 的 USB 存储设备读取文件。我目前正在使用这种方法来选择驱动器的路径,以便我可以查询它的内容 private static final String
使用 Intent.ACTION_OPEN_DOCUMENT_TREE 中的 FileChooser我希望能够在用户选择的位置写入文件。由于文件选择器返回一个树 URI,我使用了一个实用程序类,特别是
在我的应用程序中,用户可以使用隐式 Intent ACTION_OPEN_DOCUMENT_TREE 选择创建 Excel 文件的目录。 然而,Uri 在 onActivityResult() 中返回
我尝试编写一个 Android Instrumentation 测试,用户必须选择一个文件夹来保存一些文件。但我不知道如何创建intending 所需的结果。 下面的代码是我到目前为止想出的。 val
我读到我必须提前为 Android Q 版本准备我的应用程序,因为如果他们不撤销管理这些文件的新方法,那么对应用程序拥有的目录之外的文件的常见读/写访问可能会被弃用. 幸运的是,我没有那么多代码行需要
是否可以在使用 Intent.ACTION_OPEN_DOCUMENT_TREE 时指定“开始路径”? 当我这样使用它时: Intent chooseFolderIntent = new Inten
我的应用程序下载并解压缩特定文件夹中的文件: output = new FileOutputStream(realpath, true); output.write(buffer, 0, bytesR
我在我的应用程序(在 Android 5+ 中)中实现“选择保存目录”(对于所有文件)功能时遇到了问题。我需要的是一个目录选择器——所以我决定使用系统选择器——发送 Intent ACTION_OPE
我想要实现的是删除 sd 卡上的文件,我尝试了 file.delete 方法,但它不起作用,因为 sd 卡现在是只读的。 所以我阅读了一篇关于 SAF(存储访问框架)的文章,通过存储我们在 onAct
我只是尝试通过 ACTION_OPEN_DOCUMENT_TREE Intent 传递一个附加值,但我无法管理它。我需要显示树对话框,以便用户可以选择一个文件夹,我必须传递一些额外的信息。我已经将这种
这个问题在这里已经有了答案: How can I set the ACTION_OPEN_DOCUMENT_TREE start path the first time a user uses my
目录树选择器由 创建 Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); ... 在 Android 5+ 上将所有选择的目录历
我是一名优秀的程序员,十分优秀!