在哪里保存PDF文件以使用外部App打开

时间:2019-06-03 14:24:19

标签: java android file pdf-reader

我需要创建一个可通过外部应用程序打开选定PDF文件的应用程序。

我曾尝试将所有文​​件放在资产文件夹中,但是我没有找到一种创建可从资产文件夹读取的文件提供者的方法。 我更喜欢不需要复制文件的解决方案(这样就不会占用双倍的内存)。我应该将Pdf文件放在哪里(在开发阶段)?有没有一种方法可以在安装阶段将它们复制到内部/外部存储中(这样它们就不会在Assets文件夹中)?我该怎么办?

1 个答案:

答案 0 :(得分:1)

  

我找不到创建可从资产文件夹读取的文件提供程序的方法

My StreamProvider做到了。

  

是否可以在安装阶段将它们复制到内部/外部存储中(这样它们就不会在Assets文件夹中)?

不。首先,不会将普通文件从APK中复制到文件系统中的文件中。其次,APK本身不会在安装时进行修改-这样做会使数字签名无效。

  

我该怎么办?

选项1:请勿将PDF与您的应用打包在一起。而是下载它。

选项2:不使用PDF,而是使用HTML / CSS / JS,并使用WebView

渲染资产

选项3:使用我的StreamProvider

选项4:创建自己的ContentProvider,可以直接从assets开始使用(this sample app很简单,但可以说明这种技术)

选项5:不用担心磁盘空间,将资产复制到内部存储中的文件(例如getCacheDir()),然后使用FileProvider