HarmonyOS 鸿蒙Next读取相册文件问题咨询

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

HarmonyOS 鸿蒙Next读取相册文件问题咨询 我们正在开发一个选取照片上传的功能,我们发现升级手机到NEXT0.026(SP8DEVC00E29R4P6log)后,

读取uri的代码一直不返回,导致无法上传,请问是怎么回事呢?代码如下:

private async getConvertUploadUri(params:UploadParams,uri:string,customFileName?:string):Promise<string> {
    if (MediaUtils.isNormalPicture(uri) && params.mIsCompressPic==true) {
        //压缩;
        let mime = MediaUtils.getPictureMime(uri)
        LogUtils.info(TAG, "====> upload 获取mime" + mime + " 开始open原始文件准备压缩... " + uri)
        let file = await fs.open(uri, fs.OpenMode.READ_ONLY)
        LogUtils.info(TAG, "====> upload open成功,开始压缩")
    }

    就是这一行: let file = await fs.open(uri, fs.OpenMode.READ_ONLY)
    永远不返回,这个uri是我们从picker里获取的,地址如下:
    
    file://media/Photo/269/x'x'x'x'x'x'x.jpg

更多关于HarmonyOS 鸿蒙Next读取相册文件问题咨询的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

你这边url是通过picker拿到的,是媒体库的这个url的使用方法是参考文档是:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/photoaccesshelper-photoviewpicker-V5#指定uri获取图片或视频资源

更多关于HarmonyOS 鸿蒙Next读取相册文件问题咨询的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对HarmonyOS(鸿蒙)Next读取相册文件的问题,以下是专业且直接的回答:

在HarmonyOS Next系统中读取相册文件,通常需要通过系统提供的API接口进行操作。首先,确保你的应用已获得读取存储权限,这是访问相册文件的前提。

接下来,你可以使用MediaStore类来访问相册中的图片和视频文件。MediaStore提供了一个统一的接口来访问设备上的媒体文件,包括图片、视频等。通过指定相应的URI和投影,你可以查询出相册中的文件信息,并获取其路径。

在编写代码时,注意要处理好权限请求和异常情况。当用户首次打开应用并尝试访问相册时,系统可能会弹出权限请求对话框,用户同意后才能继续操作。同时,也要做好异常处理,以防在访问过程中出现异常导致应用崩溃。

如果你已经按照上述步骤操作,但仍然无法读取相册文件,可能是以下原因:

  1. 应用未正确申请或被授予存储权限。
  2. 使用的URI或投影不正确,导致无法查询到相册文件。
  3. 设备上的媒体文件存储路径发生变化,导致无法访问。

请检查并确认以上情况,如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部