HarmonyOS 鸿蒙Next相册时间问题咨询
HarmonyOS 鸿蒙Next相册时间问题咨询
我们尝试使用 await image.createImageSource(destUri).getImageProperty()方法,
不是返回401就是返回62980123,看官方文档这个api仅支持jpg,且图片必须拥有exif信息,但目前似乎没有别的
方法可以获取。
下述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相册时间问题,以下是一些可能的解决方案:
- 时区与时间设置:请确保您的设备时区设置正确,且已开启自动设置时间和日期功能。这有助于确保相册中的图片时间戳与实际拍摄时间一致。
- 系统更新:检查您的HarmonyOS系统是否有可用的更新。系统更新可能包含对时间同步问题的修复。
- 应用缓存与数据:清除相册应用的缓存和数据,然后重启设备,看是否能解决问题。
- 图片来源与时间信息:如果图片是从第三方应用下载或保存的,时间信息可能由应用决定。请检查第三方应用的时间设置。
- 系统时间异常:如果系统时间本身异常,可能导致相册时间显示错误。此时,请尝试重新设置系统时间。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。