【问题标题】:Android FileProvider, is it possible to modify its paths programmatically in runtimeAndroid FileProvider,是否可以在运行时以编程方式修改其路径
【发布时间】:2017-08-25 06:43:37
【问题描述】:

FileProvider 只能为以下文件生成内容 URI 您事先指定的目录。

我们的应用允许用户将我们的默认保存目录更改为他们设备 SD 卡上的任意文件夹。

我们无法预见这些路径并在 provide_paths.xml 文件中指定它们。

以前有没有人遇到过这个问题,您是否设法在运行时修改了这些路径?

【问题讨论】:

  • 你如何允许用户选择保存目录?
  • 使用 Android 存储访问框架,当您在引入 SAF BS 并阻碍对 SD 卡的访问之前通过包装 C/C++ 库来执行所有文件 I/O 时,这简直是骇人听闻。对于我们 BitTorrent 开发人员来说,Android 越来越难使用。
  • 谢天谢地,任何 C/C++ 库都可以构建为接受 file descriptors 而不是文件路径,SAF 完全支持这些路径(通过文档 Uri 上的 technique like thisopenAssetFileDescriptor 跨度>

标签: android


【解决方案1】:

FileProvider 无法提供来自 SD 卡或其他可移动媒体的文件。

您不能在 xml 中指定此类文件夹。

如果用户选择外部存储器上的文件夹,则无需更改 xml 中的路径。如果您使用正确的 File 对象调用 getUriForFile,那么您就完成了。

【讨论】:

【解决方案2】:

如果您使用的是Storage Access Framework,则根本没有理由使用FileProvider。您可以将您拥有的文档 URI 传递给其他应用程序(确保您还包括 FLAG_GRANT_READ_URI_PERMISSION),就像您可以将由 FileProvider 生成的 Uri 传递给它们一样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 2012-12-31
    • 2013-06-29
    • 2017-04-26
    相关资源
    最近更新 更多