HarmonyOS 鸿蒙Next:使用picker选择器获取媒体资源URI并持久化保存后,杀掉应用进程再次打开,URI无法正常显示媒体内容

发布于 1周前 作者 eggper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:使用picker选择器获取媒体资源URI并持久化保存后,杀掉应用进程再次打开,URI无法正常显示媒体内容

  1. 通过picker拉起相册媒体资源选择器,拿到返回的uri之后,使用键值数据库对uri进行保存

  2. 杀掉应用进程之后, 再次打开应用, 读取持久化的数据, 拿到之前保存的uri, 使用image组件进行显示

  3. image不能正常显示uri对于的图片等媒体资源

暂时解决办法: 再拉起一次picker选择器,选取图片后, 之前选取的图片可以正常显示.(需要强制刷新一次UI)

3 回复

使用picker选择到图库问价uri后,不能通过拼接uri的方式创建文件,因为获取到uri之后,只能获得这个uri文件的读权限,没有图库目录的权限,无法进行任何其他操作,可以把路径放到应用沙箱内,应用在应用沙县内有所有权限。

图库并非普通路径,一般应用是直接操作权限的,而且访问本地资源文件,请使用$rawfile或者resource协议。如果加载应用包外沙箱路径的本地资源文件(文件支持html和txt类型),请使用file://沙箱文件路径

请查看image和播放器支持的资源,并且图库的读写权限目前不开放给三方

更多关于HarmonyOS 鸿蒙Next:使用picker选择器获取媒体资源URI并持久化保存后,杀掉应用进程再次打开,URI无法正常显示媒体内容的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


是的,每次启动APP它的路径都会变化,所以,不要尝试存储和使用绝对路径!

在HarmonyOS鸿蒙Next系统中,使用picker选择器获取媒体资源URI并持久化保存后,若杀掉应用进程再次打开时URI无法正常显示媒体内容,通常是因为URI对应的文件或资源在应用重启后无法被正确访问或已失效。

这可能是由于以下几点原因:

  1. URI时效性问题:某些URI可能是临时的,重启应用后可能失效。确保保存的是持久化的文件路径或长期有效的URI。

  2. 权限管理:检查应用是否在重启后依然拥有访问该媒体资源的权限。特别是针对外部存储的访问权限,需要在应用启动时重新申请或验证。

  3. 文件路径变更:如果URI指向的是外部存储,且系统或用户操作导致文件路径发生变化(如文件被移动、删除或存储位置变更),则URI将失效。

  4. URI格式问题:确保保存的URI格式正确,且在应用重启后能正确解析。

解决这类问题,可以尝试以下方法:

  • 确保保存的是持久化的文件路径而非临时URI。
  • 在应用启动时检查并重新申请必要的权限。
  • 使用文件管理器API检查文件是否存在及其路径是否有效。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部