【发布时间】:2018-04-05 07:23:06
【问题描述】:
我正在尝试下载文件,但出现 System.UnauthorizedAccessException:对路径“/storage/emulated/0/Download/test.pdf”的访问被拒绝。我已经在 Android Manifest 文件中设置了所需的权限。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
下载路径:
Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads)
如果我使用以下路径作为我的下载路径,我可以下载该文件。但我无法将 PDF 文件分享到谷歌驱动器、投递箱或任何其他 System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal)
我正在使用 Xamarin.Forms v2.4.0.282 和 Xamarin.Android.Support 包 v25.4.0.2。
注意:当使用 Xamarin.Forms 版本 2.3.5.256-pre2 和 Xamarin.Android.Support 包 v23.3.0 时,代码运行良好 请提出解决问题的想法。
提前致谢。
【问题讨论】:
-
您使用的是什么版本的 Android,因为任何 api 23 及更高版本都需要用户授予访问文件的明确权限
-
我正面临从 android v5.1 到 v7.0 的问题
-
在其中一台设备上,我将进入设置>应用程序单击该应用程序并检查是否启用了存储权限并重试。如果它之后它工作,那么你只需要提示用户启用权限
-
@Nick 谢谢。如您所说,它在启用许可后工作。现在我添加了询问运行时权限的代码。
-
以下答案可能会有所帮助stackoverflow.com/a/66515458/7149454