使用 SAF 访问 Google 驱动器时如何刷新内容
How to refresh the content when accessing Google drive with SAF
我正在尝试使用以下代码在我的应用程序中从 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);
直接取自Google的文档。我能够让文件选择器出现。但是有两个问题:
- 无法刷新文件选取器的内容。
- 新添加到 Google 驱动器帐户的文件将不会出现,直到我转到实际的 Google 驱动器应用程序并在那里执行刷新。
我想知道我的实现是否遗漏了什么。我试图在网上搜索,但令人惊讶的是没有发现任何相关内容。更令人惊讶的是,我在 gmail 应用程序中遇到了同样的问题。
提前致谢。
存储访问框架确实在 active/selected 提供程序(queryDocument 和 queryChildDocuments)上调用回调。由 Google 驱动文件提供者同步并通知 SAF。 SAF 甚至支持大尺寸的流式文件。同步逻辑本身是依赖于打瞌睡模式等的实现逻辑
在最坏的情况下,用户总是可以在文档查看器上下拉刷新以触发相同的回调。
https://medium.com/androiddevelopers/building-a-documentsprovider-f7f2fb38e86a。
我正在尝试使用以下代码在我的应用程序中从 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);
直接取自Google的文档。我能够让文件选择器出现。但是有两个问题:
- 无法刷新文件选取器的内容。
- 新添加到 Google 驱动器帐户的文件将不会出现,直到我转到实际的 Google 驱动器应用程序并在那里执行刷新。
我想知道我的实现是否遗漏了什么。我试图在网上搜索,但令人惊讶的是没有发现任何相关内容。更令人惊讶的是,我在 gmail 应用程序中遇到了同样的问题。
提前致谢。
存储访问框架确实在 active/selected 提供程序(queryDocument 和 queryChildDocuments)上调用回调。由 Google 驱动文件提供者同步并通知 SAF。 SAF 甚至支持大尺寸的流式文件。同步逻辑本身是依赖于打瞌睡模式等的实现逻辑
在最坏的情况下,用户总是可以在文档查看器上下拉刷新以触发相同的回调。
https://medium.com/androiddevelopers/building-a-documentsprovider-f7f2fb38e86a。