我正在开发一个应用程序,用于在线下载文件,将它们保存在内部存储上,并在安装后读取它们。此外,我的客户要求对文件进行加密。
实际上我已经开发了一个工作版本,可以执行以下操作:
下载过程: 1) 将文件下载到内部存储上 2)从原始文件创建一个新的加密文件,并将其保存在内部文件夹中 3)删除原来的
开通流程: 1)从加密文件创建解密文件并将其保存在内部存储中 2)使用正确的查看器打开解密的文件 3) 一旦用户停止阅读解密文件,就将其删除。
这是我的问题: 我实际上正在使用 ActivityForResult 和 Intent ACTION VIEW 从内部存储打开解密的文件。 首先,我不喜欢在 ACTION VIEW Intent 上使用 ActivityForResult,因为它是由外部应用程序处理的,其次,如果用户从查看器中离开应用程序,则用户会保留解密的文件。
如何从解密的文件创建一个临时文件,该文件将在用户读完后销毁?
下载的文件需要离线可读,因此不能选择流式传输。
最佳答案
编辑:解决方案
唯一的解决方案是控制Intent,这样ActivityForResult就可以在这里安全地使用。因此,查看器必须在应用程序中实现。如果这些文件不是常见文件(如我的情况),您应该开发自己的阅读器/查看器。这使您可以完全控制应用程序正在执行的操作以及文件何时被删除。
关于java - 离线读取和删除加密文件,无需使用 Activity 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46069793/