使用文件预加载 Android 内部存储的方法
Method to preload Android internal storage with files
我正在使用 FileProvider
与其他应用共享文件。我需要将这些文件包含在 apk 中。由于 FileProvider
从内部存储 /data/data/<pkg-name>
获取文件,有没有办法预加载这些文件?到目前为止,我找到的唯一方法是首先将文件包含在 raw/assets 目录中,然后以编程方式将文件移至内部存储。
这是唯一的方法,还是有更好的推荐方法? FileProvider可以从assets目录传文件吗?
您不能使用 FileProvider
从 Asset Directory 传输文件。您将必须实施自己的 ContentProvider
.
以下是可以帮助您的类似问题及其答案:
- Share Assets Using fileprovider
- android share images from assets folder
您还可以使用 CWAC-Provider,它提供了一个 class 来处理资产:https://github.com/commonsguy/cwac-provider/blob/master/provider/src/main/java/com/commonsware/cwac/provider/StreamProvider.java
另一种方法可能是使用 APK 扩展文件:Expansion Files
它允许您随应用一起发送额外的文件,尤其是当您的 APK 达到 100 MB 限制时。
扩展文件保存在以下路径:<shared-storage>/Android/obb/<package-name>/
,可通过getObbDir().
检索
我正在使用 FileProvider
与其他应用共享文件。我需要将这些文件包含在 apk 中。由于 FileProvider
从内部存储 /data/data/<pkg-name>
获取文件,有没有办法预加载这些文件?到目前为止,我找到的唯一方法是首先将文件包含在 raw/assets 目录中,然后以编程方式将文件移至内部存储。
这是唯一的方法,还是有更好的推荐方法? FileProvider可以从assets目录传文件吗?
您不能使用 FileProvider
从 Asset Directory 传输文件。您将必须实施自己的 ContentProvider
.
以下是可以帮助您的类似问题及其答案:
- Share Assets Using fileprovider
- android share images from assets folder
您还可以使用 CWAC-Provider,它提供了一个 class 来处理资产:https://github.com/commonsguy/cwac-provider/blob/master/provider/src/main/java/com/commonsware/cwac/provider/StreamProvider.java
另一种方法可能是使用 APK 扩展文件:Expansion Files
它允许您随应用一起发送额外的文件,尤其是当您的 APK 达到 100 MB 限制时。
扩展文件保存在以下路径:<shared-storage>/Android/obb/<package-name>/
,可通过getObbDir().