【HarmonyOS】鸿蒙中如何获取用户相册图片

一、前言

开发中我们经常有获取相册中图片的需求,鸿蒙提供了3种获取用户相册图片的方式。我们对三种方式进行具体实现

二、简介

使用系统选择器(PhotoViewPicker)

直接访问相册数据库(PhotoAccessHelper需权限)

文件选择器(FilePicker)

三、具体实现

1、方式1系统选择器(PhotoViewPicker)通过系统提供的图片选择器,用户主动选择目标图片

import { photoAccessHelper } from '@kit.MediaLibraryKit';

let photoPicker = new photoAccessHelper.PhotoViewPicker();

photoPicker.select({

MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE, // 指定图片类型

maxSelectNumber: 1 // 设置最大选择数量

}).then((res) => {

console.log('所选图片URI:', res.photoUris[0]); // 获取图片URI}).catch((err) => {

console.error('选择失败:', err);

});


2、通过 PhotoAccessHelper 直接查询相册内容:

import PhotoAccessHelper from '@ohos.photo.PhotoAccessHelper';

let photoHelper = new PhotoAccessHelper();

photoHelper.getPhotos({ limit: 10 }).then((photos) => {

photos.forEach(photo => {

console.log('相册图片URI:', photo.uri); // 遍历获取图片URI

});

}).catch((err) => {

console.error('查询失败:', err);

});


3、文件选择器(FilePicker)获取多种类型文件(含图片),但仅限用户主动选择:

import picker from '@ohos.file.picker';

let filePicker = new picker.PhotoViewPicker(); // 文件选择器

filePicker.select().then((uris) => {

console.log('文件URI列表:', uris[0]);

}).catch((err) => {

console.error('文件选择失败:', err);

});


四、优缺点

1,使用系统选择器(PhotoViewPicker)

1.1 Ui无法修改成Ui设计样式

2,直接访问相册数据库(PhotoAccessHelper需权限)

2.1 需申请 ohos.permission.READ_IMAGEVIDEO 权限 ,该权限是受限权限(申请此权限的特殊场景与功能: 应用需要克隆、备份或同步图片/视频类文件);

2.2 用户需在隐私弹窗中授权。

3、 文件选择器(FilePicker)

3.1无法直接获取全部图片,必须由用户手动选择7;

3.2无需申请权限,依赖用户交互。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容