无法使用Pcl Storage在Xamarin表单中读取文件

时间:2018-04-08 19:50:40

标签: android ios xamarin

我正在尝试使用PCL存储读取一个字节数组的视频文件。所以我使用android studio工具将视频文件添加到名为File的文件夹中。试着从那里读。问题是,在我的代码中,它可以发现该文件存在于文件夹中,但每当我尝试使用以下代码读取它时,我都会收到异常:"访问被拒绝"但是我已经在android清单中启用了从外部存储读取和写入的权限

IFolder rootFolder = FileSystem.Current.LocalStorage;
IFile files = await rootFolder.GetFileAsync("myVideo.Mp4");
var text = await files.ReadAllTextAsync();

1 个答案:

答案 0 :(得分:2)

  

我得到一个例外:"访问被拒绝"但我已经在android manifest中启用了权限

从Android 6.0(API级别23)开始,用户在应用程序运行时向应用程序授予权限,而不是在安装应用程序时。你应该在运行时request permissions

系统权限分为两类:普通和危险:

  • 普通权限不会直接冒使用户的隐私风险。如果您的应用在其清单中列出了正常权限,系统会自动授予权限。
  • 危险权限可让应用访问用户的机密数据。如果列出危险权限,则用户必须在应用程序运行时明确批准您的应用程序。
  

java.lang.SecurityException:Permission Denial:读取com.android.providers.media.MediaProvider ...需要android.permission.READ_EXTERNAL_STORAGE

READ_EXTERNAL_STORAGE被归类为Dangerous permissions,因此您应该手动检查API级别23及以上的此权限。

更新

Here是一个在运行时请求权限的示例。