HarmonyOS 鸿蒙Next保存图片到相册的上架问题
HarmonyOS 鸿蒙Next保存图片到相册的上架问题
最初保存图片到相册申请了ohos.permission.WRITE_IMAGEVIDEO权限说上架不让那么大的权限,我们就把图片保存到下载,使用的下面的代码
// 创建文件管理器保存选项实例
const photoSaveOptions = new picker.PhotoSaveOptions()
let extension: string = ‘jpg’;
// 获取当前时间戳(毫秒),给图片命名
let timestamp: number = new Date().getTime()
// 保存文件名(可选),方括号里的文件名自定义,每次不能重复,设备里已有这个文件的话,名字就需要改个不一样的,不然接口会报错
photoSaveOptions.newFileNames = [${timestamp}niuPhoto.${extension}]
const photoViewPicker = new picker.PhotoViewPicker()
try {
photoViewPicker.save(photoSaveOptions).then((photoSaveResult) => {
if (photoSaveResult != undefined && photoSaveResult.length > 0) {
Log.i(this.TAG, ‘photoViewPicker.save to file succeed and uris are:’ + photoSaveResult)
complete(true, photoSaveResult[0])
} else {
complete(false, “”)
}
})
} catch (error) {
if (Log.enable()) {
let err: BusinessError = error as BusinessError
Log.i(this.TAG, [picker] Invoke photoViewPicker.save failed, code is ${err.code}, message is ${err.message})
}
complete(false, “”)
}
现在picker.PhotoViewPicker废弃了,我们可以直接使用https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-image-9-V5中的photoAccessHelper申请ohos.permission.WRITE_IMAGEVIDEO权限保存到相册吗?
let context = getContext(this)
// 申请相册管理模块权限’ohos.permission.READ_IMAGEVIDEO’
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
Log.i(this.TAG, getAlbumsCallback ${<span class="hljs-built_in">JSON</span>.stringify(phAccessHelper)})
let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE;
let extension: string = ‘jpg’;
// 获取当前时间戳(毫秒),给图片命名
let timestamp: number = new Date().getTime()
let options: photoAccessHelper.CreateOptions = {
title: ${timestamp}niuPhoto
}
phAccessHelper.createAsset(photoType, extension, options, (err, uri) => {
if (uri !== undefined) {
complete(uri)
} else {
Log.i(this.TAG, '创建相册路径失败 err.code : ’ + err.code + ', err.message : ’ + err.message)
complete("")
}
})
您好,ohos.permission.WRITE_IMAGEVIDEO这个权限也是受限权限
可申请此权限的特殊场景与功能: 应用需要克隆、备份或同步图片/视频类文件。
受限权限详情:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/restricted-permissions-V5#section1417080131712
只是需要保存图片到相册功能推荐使用安全控件呢
具体参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/photoaccesshelper-savebutton-V5
您也可以使用https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/photoaccesshelper-savebutton-V5链接中的弹窗授权保存方式试下。
针对HarmonyOS 鸿蒙Next保存图片到相册的上架问题,以下是一些关键信息:
HarmonyOS 鸿蒙Next对应用访问媒体库的权限进行了严格限制,以保护用户隐私。应用若需保存图片到相册,需申请ohos.permission.WRITE_IMAGEVIDEO
权限,但该权限的申请场景受限,仅限于应用需要克隆、备份或同步图片/视频类文件。若应用不符合这些受限权限场景,则无法直接通过API保存图片到相册。
目前,HarmonyOS提供了SaveButton安全控件作为替代方案,允许用户通过该控件保存图片到相册,而无需直接申请WRITE_IMAGEVIDEO
权限。然而,对于H5应用或无法通过UI界面放置SaveButton的应用,这可能不是可行的解决方案。
此外,应用还需注意遵循系统的权限管理和文件存储规范,确保在应用中正确处理用户授权和权限申请流程。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。