我必须做一些事情。我正在使用网络服务下载图像,在成功下载每个图像后,我正在使用“AES”加密算法来加密图像。我已成功完成加密。但每当我要打开设备库时,我都可以看到由我加密的下载图像。我不希望这样。我想保护那些可以阻止图库访问的图像。
我在这里理解了整个过程。当我在下载后存储每个图像时,Gallery会捕获该图像并将其存储到其缓存中,因此在我的加密过程可能会在Gallery中填充该图像。
- >我的加密过程:下载图片 - >存入SDCARD - >加密图片 - >删除真实的图像
但这也不是从Gallery中删除的。
所以简而言之,我想保护那些可以阻止Gallery访问的图像。让我知道你对我的过程的最佳建议是对还是错?我可以对它做一些改变吗?或者你有好主意而不是我的过程?
感谢您提出最好的建议。
答案 0 :(得分:4)
您必须将空文件添加到名为.nomedia
的图像文件夹中。这将阻止MediaScanner索引该文件夹中的图像。
然而,ICS上存在一个错误,使其稍微困难一些。在ICS上,您的文件夹必须在{/ 1}}之前存在,然后向其添加图片,否则图片将被编入索引。
另一个稍微不那么合规的选项是用点开始你的文件夹名称(类似.nomedia
)。由于Android是基于UNIX的,因此这将使其成为隐藏文件夹,因此不会让MediaScanner对其进行扫描。
答案 1 :(得分:0)
我有一个合适的解决方案。这也适用于更高版本。
您可以使用以下目录将其与应用程序的私人文件夹保密:
String mDirectory = getPackageManager().getPackageInfo("com.example.myapp", 0).applicationInfo.dataDir;
您可以将私人数据存储到此包中。它将阻止访问以及阻止Gallery的索引。所以你也不用担心它的加密过程:)。可能是这个文件夹不会提供太多空间。但至少它会帮助我们。
答案 2 :(得分:0)
听起来像以下解决方案可能适用于所有版本 - (Storing videos, images and audio files that can not be accesses by others)
为此,您必须将数据存储在外部存储中,并创建一个以。(点)开头的文件夹名称,然后从FileExplorer中隐藏此文件夹。在此文件夹中,您需要创建.nomedia文件并放置图像在视频中,用户无法在图库和视频中看到图像和视频。画廊无法读取.nomedia文件夹文件。