关于某些文件的Xamarin.Android上的UnauthorizedAccessException

时间:2018-05-24 18:11:16

标签: c# android xamarin.android

我在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级别的27级但没有成功,但在具有5.0 API 21的物理设备LG D618上它可以正常工作。

如何让模拟器工作?

1 个答案:

答案 0 :(得分:0)

我认为原因是您需要在运行时询问权限。

根据official documentation

  

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

您的物理设备在Android 5.0上运行,因此工作正常。

您可以参考此blog了解如何在xamarin中执行此操作。