微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android 11 存储访问框架 - 如何使用文件?

如何解决Android 11 存储访问框架 - 如何使用文件?

嘿,开发者们,

我在使用存储访问框架 (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 会让我的客户很难管理他的存储。

解决方法

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

幸运的是,Mapsforge 将来会提供更灵活的 API。您可能希望就他们的建议与他们联系。

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。