【问题标题】:How To Download Videos So It Can Be Private To App (Android)如何下载视频使其对应用程序私有(Android)
【发布时间】:2020-07-14 18:52:17
【问题描述】:

我有许多可从不同 URL 链接流式传输的视频。我希望能够使用 DownloadManager 类下载这些视频,以便下载的视频可以是私有的并且只能由应用程序访问。我了解将 DownloadManager.request 设置如下

request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "fileName");

将使其他应用程序可以访问下载的视频,但这不是我想要的。我希望下载的视频只能由我的应用访问。 如果有人能帮助我实现这一目标,我将不胜感激

【问题讨论】:

    标签: java android android-download-manager


    【解决方案1】:

    将您的文件存储在应用程序的数据文件夹中,此路径:ContextWrapper.getFilesDir();

    【讨论】:

    • 谢谢@Thompson sparta,我忘了补充一点,我在这方面不是很有经验。如果您不介意扩展,我如何将其添加到 DownloadManager?
    【解决方案2】:

    我希望能够使用 DownloadManager 类下载这些视频,以便下载的视频可以是私有的,并且只能由应用访问

    这是不可能的——如果它是“私有的并且只能由应用程序访问”,那么DownloadManager 无权访问它。您的选择是:

    • 使用DownloadManager 下载到公共位置,可能稍后将下载的内容移动到私人位置

    • 自行将内容下载到私密位置,如using OkHttp

    【讨论】:

    • 假设我想使用 OkHttp 下载视频,如何将其定向到上述问题中拼写的私人位置?
    • @Eric:The OkHttp answer that I pointed you to 正在将其文件下载到getCacheDir()。这是internal storage 的一部分,它只能由您的应用访问(root 设备除外)。
    • 感谢您的回复,现在正在添加中。再澄清一件事;我在某处读到,如果应用系统认为有必要,存储在 getCacheDir() 中的文件(在本例中为视频)将被删除,而不是 getCacheDir(),我可以调用 getFileDir() 来代替吗?如果是,会吗?该文件是否与 getCache() 一样对应用程序私有存储?
    • @Eric:是的。该博文中列出的任何内部存储位置都具有相同的效果。
    • 非常感谢,@CommonsWare。你已经非常有帮助了。我将尝试利用这些知识下载一些示例视频。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 2012-04-20
    相关资源
    最近更新 更多