您面临权限问题。
首先,您必须在 AndroidManifest 中添加:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
由于Android Marshmallow,您需要询问用户权限,所以我建议使用该包权限.插件 https://github.com/jamesmontemagno/PermissionsPlugin
并添加到您的 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);
}
您可以通过以下方式在运行时检查您是否具有权限:
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];
}
有关更多信息,您可以查看这篇博文,解释 Android 中的所有权限 -https://devblogs.microsoft.com/xamarin/requesting-runtime-permissions-in-android-marshmallow/ https://devblogs.microsoft.com/xamarin/requesting-runtime-permissions-in-android-marshmallow/