HarmonyOS 鸿蒙Next相册时间问题咨询

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

HarmonyOS 鸿蒙Next相册时间问题咨询

请问我们使用picker获取照片的uri后,如何通过uri获取照片的拍照时间或者修改时间。

我们尝试使用 await image.createImageSource(destUri).getImageProperty()方法,

不是返回401就是返回62980123,看官方文档这个api仅支持jpg,且图片必须拥有exif信息,但目前似乎没有别的

方法可以获取。

2 回复

参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-image-V5#getimageproperties12

下述demo可以获取照片的拍照时间,

demo:

Button('打开相册')

.onClick(() => {

//创建图库选择器对象实例

const photoViewPicker =new photoAccessHelper.PhotoViewPicker();

//调用select()接口拉起图库界面进行文件选择,文件选择成功后,返回PhotoSelectResult结果集

photoViewPicker.select().then(async (photoSelectResult: picker.PhotoSelectResult) => {

//用一个全局变量存储返回的uri

selectUris = photoSelectResult.photoUris;

console.info(‘photoViewPicker.select to file succeed and uris are:’ + selectUris);

}).catch((err: BusinessError) => {

console.error(Invoke photoViewPicker.select failed, code is ${err.code}, message is ${err.message});

})

})

Button(‘creatPixelMap’)

.margin({ top: 10 })

.onClick((event: ClickEvent) => {

//使用fs.openSync接口,通过uri打开这个文件得到fd

let file = fs.openSync(selectUris[0], fs.OpenMode.READ_ONLY);

console.info('file fd: ’ + file.fd);

//根据文件fd创建imagSource

const imageSource: image.ImageSource = image.createImageSource(file.fd);

let key = [image.PropertyKey.IMAGE_WIDTH, image.PropertyKey.IMAGE_LENGTH, image.PropertyKey.DATE_TIME_ORIGINAL];

imageSource.getImageProperties(key).then((data) => {

console.info(JSON.stringify(data));

}).catch((err: BusinessError) => {

console.error(JSON.stringify(err));

});//这个年月日之间使用冒号是标准,后续不会改变

针对您提出的HarmonyOS 鸿蒙Next相册时间问题,以下是一些可能的解决方案:

  1. 时区与时间设置:请确保您的设备时区设置正确,且已开启自动设置时间和日期功能。这有助于确保相册中的图片时间戳与实际拍摄时间一致。
  2. 系统更新:检查您的HarmonyOS系统是否有可用的更新。系统更新可能包含对时间同步问题的修复。
  3. 应用缓存与数据:清除相册应用的缓存和数据,然后重启设备,看是否能解决问题。
  4. 图片来源与时间信息:如果图片是从第三方应用下载或保存的,时间信息可能由应用决定。请检查第三方应用的时间设置。
  5. 系统时间异常:如果系统时间本身异常,可能导致相册时间显示错误。此时,请尝试重新设置系统时间。

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

回到顶部