1

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

4

2 回答 2

2

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

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

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

于 2017-08-22T13:17:40.420 回答
0

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

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

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

于 2017-08-23T05:59:06.853 回答