【问题标题】:Method to preload Android internal storage with files使用文件预加载 Android 内部存储的方法
【发布时间】:2017-08-19 15:19:01
【问题描述】:

我正在使用FileProvider 与其他应用共享文件。我需要将这些文件包含在 apk 中。由于FileProvider 从内部存储/data/data/<pkg-name> 获取文件,有没有办法预加载这些文件?到目前为止,我发现的唯一方法是首先将文件包含在 raw/assets 目录中,然后以编程方式将文件移至内部存储。
这是唯一的方法,还是有更好的推荐方法? FileProvider 可以从 assets 目录传输文件吗?

【问题讨论】:

  • 这可能会对您有所帮助。 CWAC-Provider github.com/commonsguy/cwac-provider
  • 应用程序第一次启动时,为什么不能从某个服务器下载它们?如果文件不是资源的一部分,那么在您的应用程序中包含文件是没有意义的,所有文件都可以下载并保存到您希望的任何文件夹中。

标签: android android-fileprovider android-internal-storage


【解决方案1】:

您不能使用FileProvider 从资产目录传输文件。您必须实现自己的ContentProvider

以下是可以帮助您的类似问题:

您还可以使用 CWAC-Provider,它提供了一个处理资产的类:https://github.com/commonsguy/cwac-provider/blob/master/provider/src/main/java/com/commonsware/cwac/provider/StreamProvider.java

【讨论】:

    【解决方案2】:

    另一种方法可能是使用 APK 扩展文件:Expansion Files

    它允许您随应用一起发送其他文件,尤其是当您的 APK 达到 100 MB 限制时。

    扩展文件保存在以下路径:<shared-storage>/Android/obb/<package-name>/,可通过getObbDir()检索。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 2014-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      相关资源
      最近更新 更多