2012-05-28 25 views
13

Mi aplicación se utiliza con fines de seguridad. entonces, desde mi aplicación, el usuario captura fotos que todas las fotos se almacenan en una carpeta a la que la carpeta no debe acceder desde ninguna otra aplicación y no debe dar acceso cuando los dispositivos se conectan al sistema de la computadora. Si el usuario desea ver estas imágenes, debe acceder solo desde mi aplicación.Cómo crear una carpeta privada en una tarjeta SD

+1

use Modo.PRIVATE –

Respuesta

2

La única manera, AFAIK es encrypt los archivos que almacena. No hay forma de evitar que los usuarios monten la tarjeta SD para acceder a todos los archivos almacenados en ella.

+0

lo siento, no pude, puede por favor describir ..... –

+0

Simplemente encripte sus imágenes usando rsa/dsa (lo que es mejor para su propósito) cuando el usuario almacena la imagen y descifre cuando él quiere para mostrar – Blackbelt

+0

eche un vistazo aquí: http://stackoverflow.com/questions/4526612/encryption-of-image-files-on-android-cipheroutputinputstream-problems – Blackbelt

0

de acuerdo con esta pregunta relacionada, sólo puede crear archivos protegidos de almacenamiento interno (no en el SD) ...

Create Folder that can not accessible by any other application

+0

El usuario puede guardar muchas imágenes Si almacena todas las imágenes en la memoria interna, es posible que la memoria no sea suficiente. –

0

No es posible no le da acceso a esa carpeta cuando el dispositivo está conectado a la pc. Tampoco es posible en la tarjeta SD, Pero puede usar un formato diferente para las imágenes que solo se pueden abrir desde su aplicación, o puede encriptar las imágenes. O si desea ocultar las imágenes para que no las muestren en la galería, puede poner un archivo en blanco con el nombre ".nomedia" en su carpeta. Pero no es posible porque si lee documentos sobre el permiso WRITE_EXTERNEL_STORAGE comprenderá lo que estoy diciendo. :)

7

De acuerdo con este guide, puede guardar archivos directamente en el almacenamiento interno del dispositivo. Por defecto, los archivos guardados en el almacenamiento interno son privados para su aplicación y otras aplicaciones no pueden acceder a ellos (ni tampoco el usuario). Cuando el usuario desinstala su aplicación, estos archivos son eliminados. Por ejemplo:

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

MODE_PRIVATE va a crear el archivo (o reemplazar un archivo del mismo nombre) y que sea privada de su aplicación. Otros modos disponibles son: MODE_APPEND, MODE_WORLD_READABLE y MODE_WORLD_WRITEABLE.

+0

El usuario puede guardar muchas imágenes Si almacena todas las imágenes en la memoria interna, la memoria puede ser insuficiente. –

Cuestiones relacionadas