HarmonyOS鸿蒙Next中保存图片到相册,用户授权后,返回uri无效
HarmonyOS鸿蒙Next中保存图片到相册,用户授权后,返回uri无效
showAssetsCreationDialog 请求用户授权保存图片到相册,返回的 uri -3006
public static async saveBase64ImgToAlbum(params: Js2HmBean, hmWebExt: HmWebExt) {
try {
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(EntryAbility.context);
let fileName = `${RunTime.HOST_APP}_${new Date().getTime()}.jpeg`
let tempPath = Application.getTempDir() + "/" + fileName
await FileUtil.saveU8ArrayToFile(params.data.source, tempPath)
LogUtil.d(this.TAG, `saveBase64ImgToAlbum tempPath = ${tempPath} ${FileUtil.isFileExist(tempPath)}`)
let srcFileUris: Array<string> = [tempPath];
let photoCreationConfigs: Array<photoAccessHelper.PhotoCreationConfig> = [
{
title: fileName, // 可选
fileNameExtension: 'jpeg',
photoType: photoAccessHelper.PhotoType.IMAGE,
subtype: photoAccessHelper.PhotoSubtype.DEFAULT, // 可选
}
];
let desFileUris: Array<string> = await phAccessHelper.showAssetsCreationDialog(srcFileUris, photoCreationConfigs);
LogUtil.d(this.TAG, `saveBase64ImgToAlbum mediaFileUris = ${desFileUris[0]}`)
FileUtil.saveFileToMedia(tempPath, desFileUris[0]);
} catch (e) {
LogUtil.e(this.TAG, "saveBase64ImgToAlbum error", e)
}
}
更多关于HarmonyOS鸿蒙Next中保存图片到相册,用户授权后,返回uri无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
PhotoCreationConfig的title属性不允许’_‘这种特殊字符,以及‘,([.\/:*?"’`<>|{}[]]) ’这些特殊字符也是不允许的,看看是不是保存的图片名称的问题
更多关于HarmonyOS鸿蒙Next中保存图片到相册,用户授权后,返回uri无效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
原来是这样,
姓名: John Doe
年龄: 30
职业: Developer
- 技能:
- Python
- JavaScript
- Go
在HarmonyOS鸿蒙Next中,保存图片到相册并获取URI无效的问题,可能涉及以下几个原因:
-
权限问题:即使用户已经授权,系统可能未正确识别或应用权限。检查
ohos.permission.WRITE_MEDIA
和ohos.permission.READ_MEDIA
权限是否在config.json
文件中正确声明,并在运行时动态请求。 -
URI生成错误:保存图片时,URI可能未正确生成或返回。确保使用
MediaLibrary
API正确保存图片,并检查返回的URI是否为有效路径。 -
文件路径问题:保存的图片路径可能不在相册的默认路径中。使用
MediaLibrary
API时,确保将图片保存到相册的默认目录,如Pictures
文件夹。 -
系统缓存问题:系统缓存可能导致URI无效。尝试清除应用缓存或重启设备,以排除缓存问题。
-
API版本兼容性:检查使用的
MediaLibrary
API是否与当前HarmonyOS版本兼容。某些API在不同版本中可能有不同的行为或返回值。 -
日志分析:查看应用日志,检查是否有相关错误或警告信息,帮助定位问题。
如果以上步骤无法解决问题,建议查阅官方文档或社区论坛,寻找类似问题的解决方案。
在HarmonyOS鸿蒙Next中,保存图片到相册后返回的URI无效,可能是由于以下原因:
- 权限未正确获取:确保在保存图片前已正确申请并获取了读写外部存储的权限。
- URI生成错误:检查生成URI的代码逻辑,确保使用了正确的API(如
MediaStore.Images.Media.insertImage
)。 - 路径问题:确认保存路径是否正确,避免路径错误导致URI无效。
- 系统缓存问题:尝试重启设备或清除应用缓存,以排除系统缓存问题。
建议检查上述环节,确保每个步骤都正确执行。