使用可能的对话框向用户提供前台下载

时间:2013-04-25 09:16:43

标签: java android android-intent android-dialog android-download-manager

我正在与可用性设计作斗争。

让我们拥有只有一个权限android.permission.INTERNET的应用程序。

我想从远程URL(我无法控制服务器端)下载图像,但是下载它以便用户可以选择是否以及在何处下载该文件。
显示流程批准和/或选择最终目的地的对话框。

我考虑过这些解决方案:

  • 使用setDestinationInExternalPublicDir下载管理器
    • 两个错误,我不想添加WRITE_EXTERNAL_STORAGE权限,用户无法决定是否下载
  • 使用Intent.ACTION_VIEW启动浏览器
    • standalone将向用户显示图像,但不会自动启动下载
  • 使用Intent.ACTION_VIEW和自定义代理脚本
    • 服务器不是我的,我不想提供我的服务器端代理下载强制脚本
  • 替换FTP的HTTP(S),让用户决定
    • 不起作用,因为该服务器上的图像无法通过FTP
  • 下载应用程序的兼容性(例如“下载所有文件”,各种“文件管理器”,...)

如何在不扩展当前权限或依赖非标准应用的情况下实现此目标?


链接到此github问题https://github.com/smarek/Simple-Dilbert/issues/1

1 个答案:

答案 0 :(得分:0)

您的应用下载文件并可能将其写入外部存储。我觉得您应该请求WRITE_EXTERNAL_STORAGE (which implies also READ_EXTERNAL_STORAGE)权限,以准确表示您的App所做的事情。

然后你的第一个解决方案有效。您只需要在进行下载调用之前提示用户的任何方法。或以其他方式积极接受您的工作流程。