我在我的应用程序中实现了SAF(存储访问框架)。我正在三星nexus 10上运行我的应用程序。它安装了Dropbox。但我无法在我的应用程序中看到dropbox。所以我的问题是:
Dropbox是否注册到SAF?如果是,还有别的东西,我需要在我的应用程序中将dropbox作为根文件夹之一提供吗?
目前,在我的应用中,我看到 - Google云端硬盘,图片,下载为我的根文件夹
我找到了答案,你应该用以下方式启动你的意图:
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
我还在测试我的应用程序是否使用Intent.CATEGORY_OPENABLE
。但是这个意图显示了丢弃框。
你可以在这里找到它:
https://developer.android.com/guide/topics/providers/document-provider.html#client
TalkLittle已经提供了与forum post的链接,这清楚地表明对提供SAF访问缺乏兴趣。
正如Budius所说,你可以(可能)使用ACTION_GET_CONTENT意图来读取文件。
但是,根据你的目标是什么,请注意documentation说:
如果您希望应用程序只读取/导入数据,请使用ACTION_GET_CONTENT。使用此方法,应用程序将导入数据的副本,例如图像文件。如果您希望应用程序对文档提供程序拥有的文档具有长期,持久的访问权限,请使用ACTION_OPEN_DOCUMENT。一个例子是照片编辑应用程序,它允许用户编辑存储在文档提供程序中的图像。
使用“打开文档”意图将允许您同时写入修改后的文件,而“获取内容”则不会。可能有解决方法,但与Open Document intent不同,它并不简单。