我需要创建一个可通过外部应用程序打开选定PDF文件的应用程序。
我曾尝试将所有文件放在资产文件夹中,但是我没有找到一种创建可从资产文件夹读取的文件提供者的方法。 我更喜欢不需要复制文件的解决方案(这样就不会占用双倍的内存)。我应该将Pdf文件放在哪里(在开发阶段)?有没有一种方法可以在安装阶段将它们复制到内部/外部存储中(这样它们就不会在Assets文件夹中)?我该怎么办?
答案 0 :(得分:1)
我找不到创建可从资产文件夹读取的文件提供程序的方法
是否可以在安装阶段将它们复制到内部/外部存储中(这样它们就不会在Assets文件夹中)?
不。首先,不会将普通文件从APK中复制到文件系统中的文件中。其次,APK本身不会在安装时进行修改-这样做会使数字签名无效。
我该怎么办?
选项1:请勿将PDF与您的应用打包在一起。而是下载它。
选项2:不使用PDF,而是使用HTML / CSS / JS,并使用WebView
选项3:使用我的StreamProvider
选项4:创建自己的ContentProvider
,可以直接从assets
开始使用(this sample app很简单,但可以说明这种技术)
选项5:不用担心磁盘空间,将资产复制到内部存储中的文件(例如getCacheDir()
),然后使用FileProvider