2011-04-11 20 views
9

Tengo una aplicación de Android que almacena entre 25 y 40K de datos de aplicaciones privadas en pocos archivos. Por defecto, el sistema almacena estos archivos en el directorio/data/data/'my app package'/files. Cuando el usuario va a "Configuración-> Aplicaciones-> Administrar aplicaciones -> 'Paquete de mi aplicación'" y elige la opción "Eliminar datos", todos los archivos, carpetas de bases de datos para esta aplicación se eliminan. Necesito mantener mis datos en el dispositivo hasta que la aplicación se "desinstale".Android - Cómo evitar que se borren los datos de la aplicación mediante la opción de configuración "Borrar datos"

¿Hay alguna manera de mantener los datos de mi aplicación "en el dispositivo" en algún lugar sin borrarlos? Mi dispositivo no está rooteado. Mi aplicación no está destinada a estar en dispositivos rooteados.

Nota: vi el directorio/data/data/'mi paquete de aplicaciones'/lib no se elimina con la opción "borrar datos". Pero no pude escribir programáticamente en este direccional. Me niegan el permiso. ¿Hay alguna manera de usar este directorio para almacenar mis datos? ¿Hay alguna manera de utilizar NDK (aún no se ha trabajado en él) para mantener la seguridad de los datos? ¿Hay alguna manera de mantener los datos en el recurso de la aplicación o algo así como un recurso DLL en la programación de Windows?

¿Alguna ayuda por favor para sacarme de este aprieto?

+0

El uso del NDK no le permitiría superar ningún problema de permiso de escritura que esté afectando en su código Java. –

+0

¿Qué tipo de datos buscas mantener? Esperaría que cualquier usuario que borre los datos espere la pérdida de datos. Una posible solución es mantener algunos datos en cacheDir (ver http://developer.android.com/reference/android/content/Context.html#getCacheDir%28%29), ya que esto se borra por separado. También puede ser viable almacenar datos en la tarjeta SD. –

+0

Muchas gracias por todas las sugerencias. Trato de mantener algunos datos corporativos simples de texto seguro. Ellos serán encriptados, por supuesto.El cahce dir parece ser inseguro también; doc dice que se eliminará en la memoria baja. La tarjeta SD puede ser eliminada por el usuario y no puede volver a colocarse por un tiempo prolongado. Mantener los datos en el servidor; El problema es que el dispositivo puede no estar en contacto con el servidor por mucho tiempo debido a fuera de alcance, fuera de alcance, etc. – user702426

Respuesta

2

Cuando el usuario va a "Configuración-> Aplicaciones-> Administrar aplicaciones -> 'Paquete de mi aplicación'" y elige la opción "Borrar datos", todos los archivos, carpetas de bases de datos de esta aplicación se eliminan. Necesito mantener mis datos en el dispositivo hasta que la aplicación se "desinstale".

Esto no es posible por razones de seguridad, consulte la pregunta this.

7

Los siguientes obras para mí: android:manageSpaceActivity=".ActivityOfMyChoice"

Entonces, en lugar de "Clear Data", hay un botón para "Manage Space" que pone en marcha ActivityOfMyChoice

Se está trabajando para mi aplicación, y lo veo trabajando en Dolphin Browser (que es qué me impulsó a encontrar esta información).

Estoy usando un Samsung Captivate (AT & T Galaxy S) con stock 2.2 (Froyo). No sé si algunos dispositivos pueden mostrar ambos, o no.

Algunos dispositivos todavía pueden mostrar ambos, o pueden no sólo muestran Administración del espacio en absoluto

1

Añadir

androide: allowClearUserData = "false"

a la etiqueta Aplicación del Manifiesto cambiará el botón Borrar datos a Administrar espacio

Cuestiones relacionadas