HarmonyOS 安全控件的保存控件SaveButton保存图片到相册失败

安全控件的保存控件SaveButton保存图片到相册失败

之前想要申请ohos.permission.READ_IMAGEVIDEO、ohos.permission.WRITE_IMAGEVIDEO

权限被拒绝。转而使用保存在线图片到相册功能使用SaveButton功能,结果提示错误码“13900012”

HarmonyOS
2025-01-09 17:43:48
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

需先下载到沙箱,再保存视频/图片到图库相册;

如下是图片保存到图库的demo,可以参考使用,保存视频需在调用createAsset方法时需将参数修改为视频类型,创建好视频资源后,将沙箱中下载好的视频资源通过文件写入的方式,写到创建好的视频资源里。

SaveButton(this.saveButtonOptions)// 创建安全控件按钮
  .onClick(async (event, result: SaveButtonOnClickResult) => {
    if (result == SaveButtonOnClickResult.SUCCESS) {
      if (this.finalPixelMap) {
        try {
          // 1、使用安全控件创建文件
          let phAccessHelper: photoAccessHelper.PhotoAccessHelper = photoAccessHelper.getPhotoAccessHelper(this.context);
          let options: photoAccessHelper.CreateOptions = {
            title: Date.now().toString()
          };
          // createAsset的调用需要ohos.permission.READ_IMAGEVIDEO和ohos.permission.WRITE_IMAGEVIDEO的权限
          let photoUri: string = await phAccessHelper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'png', options);
          console.info('CameraDemo createAsset successfully, photoUri: ' + photoUri);
          // 2.1、方式一:通过文件管理写入文件
          let file: fileIo.File = fileIo.openSync(photoUri, fileIo.OpenMode.WRITE_ONLY);
          fileIo.writeSync(file.fd, this.buffer);
          fileIo.closeSync(file);
          promptAction.showToast({message: `保存成功`})
        } catch (error) {
          let err = error as BusinessError;
          console.error(`CameraDemo savePicture error: ${JSON.stringify(err)}`);
          promptAction.showToast({ message: `保存失败` })
        }
      }
    } else {
      console.error('CameraDemo SaveButtonOnClickResult createAsset failed.');
      promptAction.showToast({ message: `保存失败` })
    }
    setTimeout(() => {
      this.hasPicture = false;
      this.finalPixelMap = undefined;
    }, 1000)
  })

在安全控件里调用createAsset ,会获取10秒的临时权限

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/savebutton-V5

分享
微博
QQ
微信
回复
2025-01-09 19:13:38
相关问题
HarmonyOS SaveButton保存图片授权失败
366浏览 • 1回复 待解决
HarmonyOS 保存图片系统相册
482浏览 • 1回复 待解决
HarmonyOS 保存图片本地相册
423浏览 • 1回复 待解决
HarmonyOS 保存图片相册问题
765浏览 • 1回复 待解决
HarmonyOS 截图保存图片相册
406浏览 • 1回复 待解决
HarmonyOS 实现保存图片相册
557浏览 • 1回复 待解决
HarmonyOS 保存图片相册权限问题
665浏览 • 1回复 待解决
如何保存网络图片相册
1267浏览 • 1回复 待解决
HarmonyOS保存图片系统相册问题咨询
1088浏览 • 1回复 待解决
使用SaveButton保存图片方式
1003浏览 • 1回复 待解决
HarmonyOS savebutton使用影响图片保存
365浏览 • 1回复 待解决
如何保存本地图片相册
1614浏览 • 1回复 待解决
求大佬告知如何保存图片相册
1718浏览 • 1回复 待解决
HarmonyOS saveButton控件问题
376浏览 • 1回复 待解决
怎么实现保存网络图片相册功能?
1089浏览 • 1回复 待解决
HarmonyOS 图片保存失败
376浏览 • 1回复 待解决
HarmonyOS h5如何实现保存图片相册
499浏览 • 1回复 待解决