【问题标题】:UnauthorizedAccessException on Xamarin.Android on some files某些文件上 Xamarin.Android 上的 UnauthorizedAccessException
【发布时间】:2018-05-24 18:11:16
【问题描述】:

我在Environment.SpecialFolder.Personal 文件夹中有一些文件,为了简单起见,我们说 A 和 B。

文件 A 由应用创建,而文件 B 是通过 Android Studio 的设备文件资源管理器复制的。 应用可以打开 A,但 B 抛出一个UnauthorizedAccessException

要打开,检查是否File.Exists后,我用

FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.None);

File.Exists 正确返回文件存在,但为 B 创建 new FileStream 失败。

我已经尝试更改 B 文件的用户/组,以及更改权限以匹配文件 A 中的信息。

我正在使用版本 7.1.1 API 级别 25 的 Android 模拟器中对此进行调试。

我怎样才能解决这个问题,或者至少找到关于这个问题的更多信息?

编辑:我尝试了 8.1 API 级别 27,但没有成功,但在具有 5.0 API 21 的物理设备 LG D618 上它可以工作。

如何让模拟器工作?

【问题讨论】:

    标签: c# android xamarin.android


    【解决方案1】:

    我认为原因是您需要在运行时请求许可。

    根据official documentation

    您通过在应用清单中列出权限然后请求用户在运行时批准每个权限(在 Android 6.0 及更高版本上)来声明您的应用需要权限。

    您的物理设备在 Android 5.0 上运行,因此运行良好。

    您可以参考这个blog 了解如何在 xamarin 中进行操作。

    【讨论】:

    • 我拥有清单中列出的权限并要求用户提供权限。现在我发现有些复制的文件打开了,有些没有。我认为问题可能出在文件上,但不知道是什么原因造成的......
    • @NathanOliveira Hope this link 可能会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2013-05-26
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多