5

我正在尝试使用以下代码从我的应用程序中的 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);

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

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

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

提前致谢。

4

1 回答 1

1

存储访问框架确实在活动/选定的提供者(queryDocument 和 queryChildDocuments)上调用回调。由 Google 驱动器文档提供商负责同步和通知 SAF。SAF 甚至支持大尺寸的流文件。同步逻辑本身是依赖于打盹模式等的实现逻辑。

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

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

于 2019-01-30T17:05:42.243 回答