使用文件预加载Android内部存储的方法

时间:2017-08-19 15:19:02

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

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

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

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