2012-05-28 72 views
13

我的应用程序用于安全目的。因此,从我的应用程序中,用户可以捕获所有照片存储在文件夹中不应从任何其他应用程序访问的文件夹中的照片,并且在设备连接到计算机系统时不应该提供访问权限。如果用户想要查看这些图像,他应该只能从我的应用程序访问。如何在SD卡中创建私人文件夹

+1

使用Mode.PRIVATE –

回答

2

唯一的办法,AFAIK是您存储的文件encrypt。没有办法阻止用户挂载SD卡来访问存储在其中的每个文件。

+0

对不起,我没有得到你可以请描述..... –

+0

只需使用rsa/dsa(它最适合你的用途)加密你的图像时,当用户存储图像和解密时,当他想要显示。 – Blackbelt

+0

看看这里:http://stackoverflow.com/questions/4526612/encryption-of-image-files-on-android-cipheroutputinputstream-problems – Blackbelt

0

它不可能当设备连接到PC时,不允许访问该文件夹。另外,它也不可能在SD卡上, 但是,对于只能从应用程序打开的图像,您可以使用不同格式,也可以加密图像。 或者,如果您想隐藏图片以将其显示在图库中,则可以在文件夹中放置一个名称为“.nomedia”的空白文件。 但不可能的原因,如果你阅读有关WRITE_EXTERNEL_STORAGE权限的文档,你会明白我在说什么。 :)

7

根据此guide,您可以直接在设备的内部存储器上保存文件。默认情况下,保存到内部存储的文件对于您的应用程序是私人的,其他应用程序无法访问它们(用户也无法访问)。当用户卸载您的应用程序时,这些文件将被删除。 例如:

String FILENAME = "hello_file"; 
String string = "hello world!"; 
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); 
fos.write(string.getBytes()); 
fos.close(); 

MODE_PRIVATE将创建文件(或替换同名文件),并使其私人您的应用程序。其他可用的模式有:MODE_APPEND,MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。

+0

用户可以保存许多图像如果所有图像存储在内存中,内存可能不足。 –