gpt4 book ai didi

android - Picasso Android 不加载类型为 "content://"的 Uri

转载 作者:可可西里 更新时间:2023-11-01 11:41:59 24 4
gpt4 key购买 nike

我正在开发一个处理图片的 Android 应用。

在 MainActivity 上,您可以选择使用相机拍照或使用手机拍照。然后,经过一些处理后,应用程序显示一个带有一些结果的 Activity 和由 Picasso 加载的图片:pic.load(uri).resize(1000, 1000).centerCrop().into(normalImage);

在此过程中,我将我的 URI 和结果保存在 SQLite 数据库中。这里一切正常。

在应用程序重新启动时,所有内容都已加载,但从手机拍摄的照片除外。相机的照片没问题。

来自相机的图片具有“file://”类型的 URI。来自手机的图片具有“content://”类型的 URI。

我不知道我可以发布哪个代码部分来帮助您,请不要犹豫告诉我!

谢谢你们。

最佳答案

During the process, I'm saving my URI's and results in a SQLite database. Everything works fine here.

不是真的。

对于您收到的任何 Uri,您应该假定您只能临时访问其内容。对于 content: Uri 值尤其如此。保留 Uri 毫无意义,因为您将来可能无法使用该值,尤其是在您的进程终止之后。

Uri 视为 Web 资源的 URL。一些 URL 是可公开访问的,这些 URL 可以保留下来并在以后使用。只要用户登录,其他 URL 可能会起作用,但是一旦用户的 session 超时,该 URL 就无用了。 Uri 值基本上也是如此。

您的选择是:

  • 在 Android 4.4+ 上,将 ACTION_GET_CONTENT 替换为 ACTION_OPEN_DOCUMENT,然后使用 takePersistableUriPermission() 尝试获得长期访问权限到 Uri,作为 the Storage Access Framework 的一部分

  • 在您的应用程序中制作内容的本地副本,并对您的界面术语进行适当调整,以便用户理解这就是正在发生的事情(例如,“复制”、“附加”、“导入”)

关于android - Picasso Android 不加载类型为 "content://"的 Uri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35894595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com