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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM