【问题标题】:Xamarin.Forms (UWP and Android) directory selection outside of AppDataAppData 之外的 Xamarin.Forms(UWP 和 Android)目录选择
【发布时间】:2020-03-26 03:21:51
【问题描述】:

我整天都在拔头发。我正在将我的 WPF 应用程序转换为 Xamarin.Forms(UWP、IOS 和 Android)。我目前专注于 UWP 和 Android(还没有苹果设备),我运行了很多程序,但我遇到了一个巨大的障碍,读取不在我的沙箱目录中的文件。目前,我的应用程序允许您选择一个包含图像的文件夹,并且您可以在它们之间移动。为了测试阅读功能,我将图像放入“LocalState”目录和宾果游戏,我的代码运行良好。现在该程序没有默认文件夹,当我最初在 WPF 中创建它时,用户会弹出一个窗口,他们会选择自己的文件夹,但我终生无法为 Xamarin 获得类似的功能。每次我尝试某事时,我都会收到“拒绝访问”。我已经看到 Android 应用程序允许您为模拟器选择一个文件夹,并且我 100% 确定您可以设置 UWP 以使用 StorageApplicationPermissions 执行权限,但我无法让它适用于 Xamarin.Forms。请帮帮我!

【问题讨论】:

标签: android xamarin.forms directory uwp-xaml


【解决方案1】:

好的,Android 首先更容易。您需要在清单中设置读写 SD 卡的权限。在 Marshmallow 及更高版本上,您需要在运行时请求权限(您需要从本机项目中进行此操作)。

在 UWP 上,最简单的做法是在清单中设置广泛文件访问。除了您指出正确的 API 之外,您只需要在本地运行它们即可。

通常使用依赖注入来调用本机代码。如果它变得太复杂,您可以考虑将 Xamarin.Forms 项目创建为共享项目,您可以在其中使用条件编译而不是依赖注入,这非常简单。

【讨论】:

  • 我尝试了broadfileacess(在Windows隐私设置中打开它),但它不起作用。仍然被拒绝访问。我也不喜欢这种方式,因为最终用户必须在程序实际运行之前进行更改。访问程序之间共享的文件是不是很常见?我什至无法在 UWP 中阅读我的文档。
  • @dbooher2011 broadfileaccess 不能这样工作,但它可以工作......
猜你喜欢
  • 2019-12-15
  • 2017-07-15
  • 2018-02-15
  • 1970-01-01
  • 1970-01-01
  • 2014-05-02
  • 2017-09-01
  • 2017-04-10
  • 1970-01-01
相关资源
最近更新 更多