Me gustaría que mi aplicación archivara la base de datos de la aplicación en la tarjeta SD. En mi código verifico si el directorio canWrite()
existe, y si no, arrojo un IOException
. En este caso particular, estoy tratando de copiar el archivo db al directorio raíz de la tarjeta SD, pero arroja un IOException
. ¿Cómo puedo cambiar el permiso en una carpeta / archivo para poder escribir en él?
80
WRITE_EXTERNAL_STORAGE
se introdujo en 1.6, por lo que deberá incluirlo en su aplicación si desea que sea compatible con versiones posteriores.La técnica sugerida anteriormente en la respuesta de Dave es ciertamente una buena práctica de diseño, y sí, en última instancia, el permiso requerido debe establecerse en el archivo AndroidManifest.xml para acceder al almacenamiento externo.
Sin embargo, la forma mono-esque de agregar la mayoría (si no todas, no estoy seguro) "opciones de manifiesto" es a través de los atributos de la clase que implementa la actividad (o servicio).
El complemento Visual Studio Mono genera automáticamente el manifiesto, por lo que es mejor no manipularlo manualmente (estoy seguro de que hay casos en los que no hay otra opción).
Por ejemplo:
[Activity(Label="MonoDroid App", MainLauncher=true, Permission="android.permission.WRITE_EXTERNAL_STORAGE")] public class MonoActivity : Activity { protected override void OnCreate(Bundle bindle) { base.OnCreate(bindle); } }
fuente