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
学习技术最好的文档就是【官方文档】,没有之一。
还有学习资料【Microsoft Learn】、【CSharp Learn】、【My Note】。
如果,你认为阅读这篇博客让你有些收获,不妨点击一下右下角的【推荐】按钮。
如果,你希望更容易地发现我的新博客,不妨点击一下【关注】。