我在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上它可以正常工作。
如何让模拟器工作?
答案 0 :(得分:0)
我认为原因是您需要在运行时询问权限。
您通过在应用清单中列出权限,然后请求用户在运行时批准每项权限(在Android 6.0及更高版本上)来声明您的应用需要权限。
您的物理设备在Android 5.0上运行,因此工作正常。
您可以参考此blog了解如何在xamarin中执行此操作。