13

我的应用程序用于安全目的。因此,从我的应用程序用户捕获所有照片都存储在一个文件夹中的照片,该文件夹不应从任何其他应用程序访问,并且在设备连接到计算机系统时不应授予访问权限。如果用户想查看这些图像,他应该只能从我的应用程序访问。

4

5 回答 5

7

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

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。

于 2012-05-28T07:05:21.747 回答
2

AFAIK 的唯一方法是访问encrypt您存储的文件。没有办法阻止用户安装 sdcard 来访问存储在其中的每个文件。

于 2012-05-28T07:03:34.950 回答
0

根据这个相关问题,您只能在内部存储中创建受保护的文件(而不是在 SD 上)...

创建任何其他应用程序都无法访问的文件夹

于 2012-05-28T07:04:26.377 回答
0

尝试以下解决方案:

如何以隐藏模式存储文件

虽然这不完全是你想要的,我怀疑它是否可能。最好的选择是将其隐藏,但也适用于约束(适用于 linux 而不适用于 Windows,其他应用程序仍然可以访问该文件夹)

如何在android中隐藏sdcard的文件夹

如何使文件隐藏在android sd卡中?

于 2012-05-28T07:04:41.190 回答
0

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

于 2012-05-28T07:04:46.417 回答