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