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.
Si posees alguna duda o capacidad de aclarar nuestro ensayo te recordamos realizar una nota y con gusto lo estudiaremos.