在我的应用程序中,我需要将动态解密的文件传递给第三方应用程序,而不将其保存到设备中。
示例:我有一个自己创建的加密文件,其中包含一个 pdf 文件和一些要求,然后才能显示 pdf 文件。如果所有要求都满足,则该 pdf 文件应由第三方 PDF 阅读器显示。
所以我需要开始一个新的意图,但是有问题。我必须提供我的 pdf 文件的 URI,但我没有 URI,因为我没有将文件保存到设备中。
有什么办法可以完成这项工作吗?
在我的应用程序中,我需要将动态解密的文件传递给第三方应用程序,而不将其保存到设备中。
示例:我有一个自己创建的加密文件,其中包含一个 pdf 文件和一些要求,然后才能显示 pdf 文件。如果所有要求都满足,则该 pdf 文件应由第三方 PDF 阅读器显示。
所以我需要开始一个新的意图,但是有问题。我必须提供我的 pdf 文件的 URI,但我没有 URI,因为我没有将文件保存到设备中。
有什么办法可以完成这项工作吗?
对于非常小的 PDF 或使用某种流加密算法加密的 PDF,您可以创建一个管道ContentProvider
. 使用管道,您基本上将数据倒入一个OutputStream
中,而另一方使用 a Uri
andContentResolver
来检索相应的InputStream
.
但是,堆空间的限制将严重限制文件的大小,如果您不能以流方式处理它(例如,当您从 HTTP 读取字节时,动态解密并将解密的字节传递给OutputStream
.
这是创建这样一个ContentProvder
.