Me gustaría que mi aplicación archive la base de datos de la aplicación en la tarjeta SD. En mi código, verifico si existe el directorio canWrite()
, y si no, arroje un IOException
. En esta instancia particular, estoy tratando de copiar el archivo db al directorio raíz en la tarjeta SD, pero está arrojando un IOException
. ¿Cómo puedo cambiar el permiso en una carpeta/archivo para poder escribir en él?Permiso para escribir en la tarjeta SD
Respuesta
Tiene razón en que el directorio de la tarjeta SD es /sdcard
pero no debería ser difícil de codificar. En su lugar, hacer una llamada a Environment.getExternalStorageDirectory()
para obtener el directorio:
File sdDir = Environment.getExternalStorageDirectory();
Si no lo ha hecho, se le tenga que dar su aplicación el permiso correcto escribir en la tarjeta SD mediante la adición a la línea de abajo su Manifiesto:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
la técnica sugerida anteriormente en la respuesta de Dave es sin duda una buena práctica de diseño, y sí en última instancia del permiso necesario se debe establecer en el archivo AndroidManifest.xml para acceder al almacenamiento externo.
Sin embargo, la forma Mono-esque para agregar la mayoría (si no todas, no estoy seguro) de "opciones de manifiesto" es a través de los atributos de la clase que implementa la actividad (o servicio).
El plugin de 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);
}
}
En realidad, ahora veo que esta configuración WRITE_EXTERNAL_STORAGE es un permiso del usuario, y si se establece tal como está arriba, aparecerá como una configuración de actividad (android: permission) y no como un permiso del usuario en el archivo de manifiesto. Ah, acabo de recordar, estableces el usuario de permisos de usuario las propiedades del proyecto en VS (es una lista de todos los permisos). – samosaris
Son en realidad "etiquetas de permiso de uso", no "permiso de usuario", pero aparte de eso, todo lo demás es verdadero. – samosaris
Una cosa que es absolutamente necesaria es llamar al if (Build.VERSION.SDK_INT> = 19) { MainActivity.get(). GetExternalFilesDirs (null); } // Para obtener acceso a SD/Android/data/your.package.name // No intente crear el directorio del paquete usted mismo. Al no realizar esta llamada, mkdir o mkdirs no funcionan. – user2607942
- 1. Permiso para leer datos de la tarjeta SD
- 2. Escritura de la tarjeta SD de Android, Permiso denegado
- 3. Escribiendo a la tarjeta SD
- 4. java.io.FileNotFoundException (Permiso denegado) Al intentar escribir en la tarjeta SD de Android
- 5. Servicio de reinicio para la aplicación en la tarjeta SD Cuando se repone la tarjeta SD
- 6. Escribiendo un archivo en una tarjeta SD
- 7. Software para marcar los bloques defectuosos en la tarjeta SD?
- 8. imágenes en la tarjeta SD de acceso
- 9. Android Guardar imagen en la tarjeta SD
- 10. Eliminar una carpeta en la tarjeta SD
- 11. Cómo guardar archivos en la tarjeta SD
- 12. escritura Android para carpeta de la tarjeta SD
- 13. Rendimiento de escritura de la tarjeta SD
- 14. Cómo reproducir vídeos desde la tarjeta SD
- 15. Cargando dibujable desde la tarjeta SD
- 16. Mover aplicaciones a la tarjeta SD
- 17. escribir archivo en la tarjeta SD y no en el almacenamiento usb
- 18. Instalación de la aplicación para Android sin tarjeta SD
- 19. Base de datos SQLite en tarjeta SD
- 20. Error al escribir el archivo de texto en la tarjeta SD
- 21. Display toda la música en la tarjeta SD
- 22. Almacenamiento de datos en la tarjeta SD en Android
- 23. Compruebe si existe archivo en la tarjeta SD en Android
- 24. ¿Cómo mostrar archivos en la tarjeta SD en un ListView?
- 25. ¿Cómo saber si la tarjeta SD está montada en Android?
- 26. Android - eliminar archivos en la tarjeta SD al desinstalar
- 27. Uso de la cámara sin tarjeta SD en Android
- 28. Inicializando la tarjeta SD en problemas de SPI
- 29. Comprobar si existe directorio en la tarjeta SD de Android
- 30. Características de la tarjeta SD Android en Samsung Galaxy
Gracias ... voy a cambiar mi código como por su sugerencia. Sin embargo, actualmente lo tengo codificado y no tengo el permiso establecido en el archivo de manifiesto, pero me permite guardarlo en la tarjeta SD de todos modos. ¿Por qué puedo guardarlo sin tener el conjunto de permisos? – bugzy
@ user244190 - supongo que su teléfono tiene Android 1.5. 'WRITE_EXTERNAL_STORAGE' se introdujo en 1.6, por lo que deberá incluirlo en su aplicación si desea que sea compatible con versiones anteriores. –
gotcha. gracias ... – bugzy