Xamarin.Android UnauthorizedAccessException: Access to the path is denied

进行文件读写,勾选了权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

依然报错

Access to the path 'xxx' is denied

原因:
根据所使用的Android版本的不同,即使在6.0或更高版本的清单中添加了权限,用户也必须在应用运行时显式启用该权限,而在较低版本中则需要在安装过程中请求该权限。 例如,在启动应用程序时,创建一种方法来检查它是否已启用,未启用则请求启用它的权限。

private void CheckAppPermissions()
{
	if ((int)Build.VERSION.SdkInt < 23)
	{
		return;
	}
	else
	{
		if (PackageManager.CheckPermission(Manifest.Permission.ReadExternalStorage, PackageName) != Permission.Granted
			&& PackageManager.CheckPermission(Manifest.Permission.WriteExternalStorage, PackageName) != Permission.Granted)
		{
			var permissions = new string[] { Manifest.Permission.ReadExternalStorage, Manifest.Permission.WriteExternalStorage };
			RequestPermissions(permissions, 1);
		}
	}
}

也可以使用支持库来执行此操作,该库更简单,并且无需检查Android版本。 有关更多信息,请查阅Google文档

参考资料

Xamarin-System.UnauthorizedAccessException: Access to the path is denied

posted @ 2019-11-25 13:55  Lulus  阅读(2092)  评论(0编辑  收藏  举报