阻止其他应用访问存储在SD卡中的应用图像

时间:2013-11-14 10:22:01

标签: android storage file-permissions android-sdcard

在我的应用程序中,我创建了一个位图并将其保存为SD卡中的JPG图像。我不希望任何其他应用程序使用此图像。这在Android中是否可行?任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:7)

除非您加密文件,否则您无法阻止访问SD卡上的文件 (参见外部存储here部分)

  

保存到外部存储的文件是世界可读的,可以   当用户启用USB海量存储转移时由用户修改   计算机上的文件。

相反,请考虑将其放入internal storage,然后您的应用程序将是唯一可以访问它的应用程序。

另一种选择,如果你只需要将它从媒体扫描仪中隐藏起来就是给它一个以点(.myfile.jpg)开头的名称,这将使它成为一个隐藏文件。 (如果您想要以这种方式隐藏多个文件,请包含名为.nomedia的空文件(请参阅Saving files that should be shared),这样您就不必重命名了所有文件。

答案 1 :(得分:1)

存储图像时,请将文件的扩展名更改为其他内容,以便其他应用程序无法识别。但是,当您想在应用中使用它时,请将扩展名更改回.bmp或.jpg!

答案 2 :(得分:1)

使用特定于应用程序的数据库并将图像保存在那里,而不是将其保存在SD卡上。然后只有您的应用程序可以访问我这样做是为了加密我的应用程序中的图像,只是保存一个BASE64编码的图像字符串,在其上执行加密stuf,反之亦然。如果您保存图像文件的字节数组,这也可以。

答案 3 :(得分:0)

方法1 - 创建.nomedia文件。

使用任何文件浏览器/管理器应用程序(例如Astro文件管理器或文件专家),导航到您想要隐藏的目录,并创建一个名为“.nomedia”的空文件。一种方法是:

将现有文本(.txt)或图像(.jpg / .jpg)文件复制到所述目录, 在文本编辑器中打开它(按住文件并从出现的上下文菜单中选择适当的选项), 删除其内容(按住文本,全选和删除),保存更改并退出, 将其重命名为“.nomedia”(再次按住该文件并从其上下文菜单中选择“重命名”)。 此方法禁用所选目录上的媒体扫描,导致Gallery在启动时完全跳过该目录。

enter image description here