2

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

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

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

我考虑了这些解决方案:

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

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


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

4

1 回答 1

0

您的应用程序下载文件并可能将它们写入外部存储。我觉得您应该请求WRITE_EXTERNAL_STORAGE(这也意味着 READ_EXTERNAL_STORAGE)权限,以准确表示您的应用程序所做的事情。

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

于 2013-04-30T14:29:11.257 回答