在哪里保存PDF文件以使用外部应用程序打开
Where to save PDF files to open with external App
我需要创建一个可通过外部应用程序打开所选 PDF 文件的应用程序。
我试过将所有文件放在资产文件夹中,但我没有找到创建将从资产文件夹读取的文件提供程序的方法。
我更喜欢不需要复制文件的解决方案(因此不会占用双倍内存)。我应该把 Pdf 文件放在哪里(在开发阶段)?有没有办法在安装阶段将它们复制到 internal/external 存储(这样它们就不会在资产文件夹中)?我该怎么办?
I didn't find a way to create a file-provider that will read from the assets folder
My StreamProvider
这样做。
is there a way to copy them to internal/external storage in the installing phase (so they won't be in the assets folder)?
没有。首先,没有普通文件从 APK 复制到文件系统上的文件中。其次,APK 本身在安装时不会被修改——这样做会使数字签名无效。
what should I do?
选项 #1:不要将 PDF 与您的应用打包在一起。相反,下载它。
选项 #2:不使用 PDF,而是使用 HTML/CSS/JS,并使用 WebView
渲染资源
选项 #3:使用我的 StreamProvider
选项 #4:创建您自己的 ContentProvider
,可以直接从 assets
提供服务(this sample app 很粗糙,但说明了技术)
选项 #5:不要担心磁盘 space,将资产复制到内部存储上的文件(例如,getCacheDir()
),然后使用 FileProvider
我需要创建一个可通过外部应用程序打开所选 PDF 文件的应用程序。
我试过将所有文件放在资产文件夹中,但我没有找到创建将从资产文件夹读取的文件提供程序的方法。 我更喜欢不需要复制文件的解决方案(因此不会占用双倍内存)。我应该把 Pdf 文件放在哪里(在开发阶段)?有没有办法在安装阶段将它们复制到 internal/external 存储(这样它们就不会在资产文件夹中)?我该怎么办?
I didn't find a way to create a file-provider that will read from the assets folder
My StreamProvider
这样做。
is there a way to copy them to internal/external storage in the installing phase (so they won't be in the assets folder)?
没有。首先,没有普通文件从 APK 复制到文件系统上的文件中。其次,APK 本身在安装时不会被修改——这样做会使数字签名无效。
what should I do?
选项 #1:不要将 PDF 与您的应用打包在一起。相反,下载它。
选项 #2:不使用 PDF,而是使用 HTML/CSS/JS,并使用 WebView
选项 #3:使用我的 StreamProvider
选项 #4:创建您自己的 ContentProvider
,可以直接从 assets
提供服务(this sample app 很粗糙,但说明了技术)
选项 #5:不要担心磁盘 space,将资产复制到内部存储上的文件(例如,getCacheDir()
),然后使用 FileProvider