大佬教程收集整理的这篇文章主要介绍了将 Flutter android (API 29) 应用程序下载的媒体(图像、视频、PDF)迁移到 Android 11(API 级别 30)的范围存储,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个类似于 whatsapp(比如 messagingApp)的 Flutter 应用程序,用于在封闭的人群中广播带有媒体(图像、视频、pdf)的消息。
当前 Flutter 应用的 androID targetSdkVersion 为 29 并使用 Legacy Storage 使用文件路径访问方法来读写媒体文件,如下所述。
应用程序的所有媒体文件都下载在基本目录 /storage/emulated/0/messagingApp
下。
以下是各种媒体的示例文件路径:
示例下载图像的路径 /storage/emulated/0/messagingApp/messagingApp_Images/20210410_111512.jpg
示例下载视频的路径 /storage/emulated/0/messagingApp/messagingApp_VIDeos/20210410_111513.mp4
示例下载的 pdf 的路径 /storage/emulated/0/messagingApp/messagingApp_documents/20210410_11151.pdf
要下载图像,请使用 dio 包:
dio.download(imagehttpUrl,'/storage/emulated/0/messagingApp/messagingApp_Images/20210410_111512.jpg',)
下载的图像使用 Image.file
小部件在应用中呈现:
Image.file(file('/storage/emulated/0/messagingApp/messagingApp_Images/20210410_111512.jpg'))
下载的图片可以从安卓的图库应用中查看。
从 2021 年 11 月开始,Playstore 强制 targetSdkVersion 为 30,并且在 API 级别 30 的范围存储模型中,应用无法直接在“共享存储”中创建文件夹。
在 Scoped Storage 中,可以从应用特定目录下载和使用文件 - /storage/emulated/0/AndroID/data/org.test.messagingApp/files
但其他(图库)应用无法访问它们。
除此之外,Scoped Storage 还提到使用“R_394_11845@ediaStoreAPI”来管理媒体。
如何使用 AndroID 11 的新 Scoped Storage 在 Flutter androID (API 30) 中管理和处理下载的媒体?
我还注意到在运行 androID 11 和 targetSdkVersion 30 的应用程序上的模拟器上,该应用程序无法在根存储 /storage/emulated/0/
中创建文件夹,但 androID 文件夹“文档、下载、DCIM、图片等”是可自由访问,即可以使用现有代码在它们下创建新文件夹,即图像路径可以更改为 /storage/emulated/0/documents/messagingApp/messagingApp_Images/20210410_111512.jpg
并且可以正常工作。
为 Flutter androID 应用使用新的 AndroID 11 Scoped Storage 的最佳实践是什么?
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的将 Flutter android (API 29) 应用程序下载的媒体(图像、视频、PDF)迁移到 Android 11(API 级别 30)的范围存储全部内容,希望文章能够帮你解决将 Flutter android (API 29) 应用程序下载的媒体(图像、视频、PDF)迁移到 Android 11(API 级别 30)的范围存储所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。