Saltar al contenido

Xamarin.Forms Guardar archivo en el sistema de archivos

este problema se puede resolver de diferentes formas, por lo tanto te compartimos la que para nosotros es la resolución más completa.

Solución:

Está enfrentando un problema de permisos.

Primero, deberá agregar su AndroidManifest:



Y desde Android Marshmallow, debe solicitar los permisos al usuario, por lo que le aconsejo que use el paquete Permissions.Plugin

Y agregue su MainActivity:

public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)

    PermissionsImplementation.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);
    base.OnRequestPermissionsResult(requestCode, permissions, grantResults);

Puede verificar en tiempo de ejecución si tiene los permisos:

var status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage);
    if (status != PermissionStatus.Granted)
    
        if(await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Storage))
        
            await DisplayAlert("Need storage, "Request storage permission", "OK");
        

        var results = await CrossPermissions.Current.RequestPermissionsAsync(Permission.Storage);
        //Best practice to always check that the key exists
        if(results.ContainsKey(Permission.Storage))
            status = results[Permission.Storage];
    

Para obtener más información, puede consultar esta publicación de blog que explica todos los permisos en Android: https://devblogs.microsoft.com/xamarin/requesting-runtime-permissions-in-android-marshmallow/

Además de la respuesta aceptada de Bruno Caceiro, los permisos de UWP que desea declarar son los siguientes: DocumentsLibrary para documentos, MusicLibrary para la carpeta de música y así sucesivamente.

Puede acceder a estos gráficamente haciendo clic derecho en proyecto -> Propiedades y luego haciendo clic en Manifiesto del paquete y yendo a la pestaña de capacidades como se muestra en la captura de pantalla, o alternativamente haciendo clic derecho package.appxmanifest y seleccionando ver código para editar el xml. Consulte el extracto del código para saber cómo declarar capacidades. Algunos no tendrán una representación en el diálogo.


    
    
    

Editar además, también puede acceder a algunas carpetas restringidas usando el rescap (capacidad restringida) espacio de nombres para agregar para obtener acceso a cualquier archivo/carpeta a la que el usuario tenga acceso.

diseñador de capacidades

Si posees alguna duda o capacidad de aclarar nuestro ensayo te recordamos realizar una nota y con gusto lo estudiaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *