0

我必须做一些事情。我正在使用网络服务下载图像,在成功下载每个图像后,我使用“AES”加密算法来加密这些图像。我已成功完成加密。但是每当我要打开设备图库时,我都能看到下载的图像被我加密。我不想要那个。我想保护可以阻止从图库访问的图像。

我在这里了解了整个过程。当我在下载后存储每个图像时,Gallery 会捕获该图像并将其存储到其缓存中,因此在我的加密过程可能是 Gallery 填充该图像之前。

-> 我的加密过程:下载图像 -> 存储到 SDCARD -> 加密图像 -> 删除真实图像

但这也不是从图库中删除。

所以简而言之,我想保护那些可以阻止从图库访问的图像。让我知道您对我的流程的最佳建议是对还是错?我可以对其进行一些更改吗?或者你有好主意而不是我的过程?

感谢您的最佳建议。

4

3 回答 3

4

您必须在您的图像文件夹中添加一个名为.nomedia. 这将阻止 MediaScanner 索引该文件夹中的图像。

但是,ICS 上存在一个错误,使这变得稍微困难​​一些。在 ICS 上,您的文件夹必须在向其添加图像之前.nomedia存在,否则图像将被编入索引。

另一个稍微不太合规的选项是以点开头的文件夹名称(类似于.foldername)。由于 Android 是基于 UNIX 的,这将使它成为一个隐藏文件夹,因此不会让 MediaScanner 扫描它。

于 2013-01-24T13:55:33.743 回答
0

我有一个合适的解决方案。这也适用于更高版本。

您可以使用以下目录将其与应用程序的私有文件夹保持私有:

String mDirectory = getPackageManager().getPackageInfo("com.example.myapp", 0).applicationInfo.dataDir;

您可以将您的私人数据存储到此包中。它将阻止访问以及阻止从图库中编制索引。所以你也不必担心它的加密过程:)。可能是这个文件夹不会提供太多空间。但至少它会帮助我们。

于 2013-01-25T11:29:06.473 回答
0

听起来像下面的解决方案可能适用于所有版本 - (存储其他人无法访问的视频、图像和音频文件

为此,您必须将数据存储在外部存储中,并创建一个以 .(点)开头的文件夹名称,然后此文件夹从 FileExplorer 中隐藏。在此文件夹中,您需要创建一个 .nomedia 文件并放置您的图像和视频然后Gallery.nomedia 文件夹中的图像和视频对用户不可见,画廊无法读取文件。

于 2015-03-27T03:38:20.843 回答