嘿,伙计们,
我在用存储访问框架(SAF)将我们的应用程序迁移到新的API 30标准时遇到了一个问题。
我已经成功地迁移了文件结构,现在正在使用内部(FilesDir)路径。
使用MediaStore-Api获取图像也很不错。
但有一个大问题我似乎解决不了。
在我们的应用程序中,我们正在使用API "Mapsforge“作为离线地图。
这个API使用的是一个Java.IO.File对象,我们从路径中得到一个".map“文件,该文件大小几乎为2GB。
这个文件不是我们的,它是一个由客户管理的文件,放在设备上供我们使用,因为所有的".Map"-Files都是自定义的。
由于SAF返回的是一个Android.Net.Uri,所以如果不复制文件的内容并因此在设备上使用更多的存储,我就无法将它转换为Java.IO.File。
有什么方法可以使用SAF来获得Java.IO.File对象,我可以在代码中使用吗?
如果不是,那么Android 11将使我的客户很难管理他的存储空间。
发布于 2021-03-14 11:48:47
这个API使用的是一个Java.IO.File-Object,我们从一个路径得到一个".map“文件,这个文件几乎有2GB大。
幸运的是,Mapsforge将来将提供更灵活的API。你不妨就他们的建议与他们联系。
有什么方法可以使用SAF来获得Java.IO.File对象呢?
不是的。毕竟,用户可能会选择Google或其他云存储提供商,而不是本地文件。或者,他们可能选择一个你的应用程序无法访问的文件。或者,他们可能选择存储在加密文件中的内容,该文件需要由文档提供程序解密。诸若此类。
https://stackoverflow.com/questions/66615979
复制相似问题