1

我允许用户通过使用其他应用程序中的共享按钮来选择 xml 文件并将其发送到我的应用程序,例如 Dropbox、Google 驱动器或本地文件存储。(见http://developer.android.com/training/sharing/receive.html

我可以通过以下方式成功检索所选/共享文件的 URI,例如从 Dropbox:

Uri receivedUri = Uri.parse(intent.getStringExtra(Intent.EXTRA_TEXT));

但是如何使用 Downloadmanager 将此文件下载到本地文件存储?我是否在我的帐户上自动进行身份验证,例如在 Dropbox 或 Google Drive 上(因为我选择并选择从他们的移动应用程序共享文件)?我是否必须根据我从哪个源下载文件来不同地配置 Downloadmanager?

谢谢!

4

1 回答 1

0

不需要下载管理器。您的应用可以通过打开基于 URI 的文件描述符来读取文件,如果它是文件 URI 或内容 URI。请参阅 ContentResolver.openFileDescriptor(),它返回一个 ParcelFileDescriptor,而 ParcelFileDescriptor 又包含一个 FileDescriptor。

顺便说一句,android.support.v4.content.FileProvider.getUriForFile() 将返回您的应用程序控制下的文件的内容URI。与文件 URI 不同,您可以在内容 URI 上设置临时访问权限。这更安全。

于 2013-09-05T00:50:08.243 回答