【问题标题】:Android 11 Storage Access Framework - How to use files?Android 11 存储访问框架 - 如何使用文件?
【发布时间】:2021-03-14 19:48:47
【问题描述】:

各位开发者,

我在使用存储访问框架 (SAF) 将我们的应用迁移到新的 API 30 标准时遇到了一个问题。

我已成功迁移文件结构,现在正在使用内部 (FilesDir) 路径。

使用 MediaStore-Api 获取图像也很有效。

但有一个大问题我似乎无法解决。

在我们的应用程序中,我们使用 API“Mapsforge”进行离线地图。

这个 API 使用了一个 Java.IO.File-Object,我们从一个“.map”文件的路径中获得,这个文件大约有 2GB 大。

这个文件不是我们提供的,是客户自己管理的文件,放到设备上供我们使用,因为所有的“.Map”-文件都是自定义的。

由于 SAF 返回 Android.Net.Uri,我似乎无法在不复制文件内容的情况下将其转换为 Java.IO.File,因此在设备上使用更多存储空间。

有什么方法可以使用 SAF 来获取我可以在代码中使用的 Java.IO.File-Object?

如果不是,那么 Android 11 让我的客户很难管理他的存储空间。

【问题讨论】:

    标签: storage-access-framework android-11 storage-access-api


    【解决方案1】:

    这个 API 使用了一个 Java.IO.File-Object,我们从一个“.map”文件的路径中获得,这个文件大约有 2GB 大。

    如果运气好的话,Mapsforge 将来会提供更灵活的 API。您不妨就他们的建议与他们联系。

    有什么方法可以使用 SAF 来获取我可以在代码中使用的 Java.IO.File-Object?

    没有。毕竟,用户可能会选择 Google Drive 或其他云存储提供商上的内容,而不是本地文件。或者,他们可能会选择您的应用无法访问的文件。或者,他们可能会选择存储在加密文件中的内容,该文件需要由文档提供者解密。以此类推。

    【讨论】:

      猜你喜欢
      • 2015-06-28
      • 1970-01-01
      • 2016-10-14
      • 2021-10-14
      • 2017-08-21
      • 2019-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多