2017-09-06 30 views
1

我正在开发一个应用程序以在线下载文件,将它们保存在内部存储上,并在安装后读取它们。此外,我的客户要求的文件比加密。使用ActivityForResult离线阅读并删除加密文件

其实我已经开发了做以下工作版本:

下载过程: 1)下载的内部存储空间 2文件)创建从原来的一个新的加密文件,并将其保存在内部夹 3)删除原

打开过程: 1)创建从所述加密的一个解密的文件,并将其保存在内部存储 2)与正确的观众 3打开解密文件)删除一旦用户解密文件停止阅读它。

这是我的问题: 我实际上使用activityForResult和Intent ACTION VIEW从内部存储打开解密文件。 首先,我不喜欢在ACTION VIEW Intent上使用ActivityForResult,因为它由外部应用程序处理,其次,如果用户将应用程序从查看器中离开,则保留解密的文件。

如何从我的解密文件中创建一个临时文件,在用户完成读取后该文件将被销毁?

下载的文件需要离线阅读,因此流式传输不是一个选项。

+0

您认为您从这样做中获得了什么安全保障? –

+0

我的客户需要的唯一规范是:“用户无法在没有应用程序帮助的情况下从应用程序文件夹打开文件”,包括案例,当然用户手机已经扎根。使用我的实际版本时,使用应用程序后保留在应用程序文件夹中的唯一文件是加密文件。 –

+0

为什么不将它流式传输/复制到设备并立即从服务器上删除?或者只是安排一项任务在30分钟内删除? –

回答

0

编辑:解

唯一的解决办法是采取意图的控制,使ActivityForResult可以安全地在这里使用。因此,观众必须在应用程序中执行。如果文件不是普通文件,就像我的情况一样,你应该开发你自己的阅读器/阅读器。这使您可以完全控制您的应用程序正在做什么以及您的文件何时被删除。