使用Downloadmanager下载从应用程序收到的文件

时间:2013-09-04 21:59:59

标签: android android-intent data-sharing android-download-manager

我允许用户使用其他应用程序中的“共享”按钮选择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云端硬盘上(因为我选择并选择从他们的移动应用程序共享文件)?我是否必须以不同的方式配置Downloadmanager,具体取决于我从哪个源下载文件?

谢谢!

1 个答案:

答案 0 :(得分:0)

没有必要使用DownloadManager。您的应用可以通过基于URI打开文件描述符来读取文件,如果它是文件URI或内容URI。请参阅ContentResolver.openFileDescriptor(),它返回一个ParcelFileDescriptor,后者又包含一个FileDescriptor。

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