android - 使用 SAF 访问 Google Drive 时如何刷新内容

标签 android storage-access-framework

我正在尝试使用以下代码在我的应用程序中访问来自 Google 驱动器的 PDF 文件:

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("application/pdf");
startActivityForResult(intent, MY_ACTION_OPEN_DOCUMENT);

直接取自谷歌的文档。我能够让文件选择器出现。但是有两个问题:

  1. 无法刷新文件选择器的内容。
  2. 在我转到实际的 Google 云端硬盘应用程序并在那里执行刷新之前,新添加到 Google 云端硬盘帐户的文件不会显示。

我想知道我的实现是否遗漏了什么。我试图在网上搜索,但令人惊讶的是没有发现任何相关内容。更令人惊讶的是,我在 gmail 应用程序中遇到了同样的问题。

提前致谢。

最佳答案

存储访问框架确实会调用 Activity/选定提供程序(queryDocument 和 queryChildDocuments)上的回调。同步和通知 SAF 取决于 Google 驱动器文档提供商。 SAF 甚至支持大尺寸的流式文件。同步逻辑本身是依赖于打瞌睡模式等的实现逻辑。

在最坏的情况下,用户总是可以在文档查看器上下拉刷新以触发相同的回调。

https://medium.com/androiddevelopers/building-a-documentsprovider-f7f2fb38e86a .

关于android - 使用 SAF 访问 Google Drive 时如何刷新内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37408542/

相关文章:

android - 如何解决 Android 10 的存储问题

android - Gridview 缩略图在一段时间后消失

android - 如何为 Android 构建 SDL 库

android - 使用 gradlew 从 Android Studio VS 运行时,仪器单元测试有不同的结果

android - 如何使用android存储访问框架正确覆盖文件内容

java - 从 SAF 内容 URI 中提取文件名

android - 从网址下载图片

android - Google Cloud Messaging - 存储限制

android - 存储访问框架 - 设置本地 DocumentFile 的最后修改日期

android - Python 中的存储访问框架