获取相册图片信息,获取手机相册中的图片相关信息

获取相册图片信息

HarmonyOS
2024-05-20 21:50:32
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
cbaby

使用的核心API

import mediaLibrary from'@ohos.multimedia.mediaLibrary';
getAssets
getAlbums

核心代码解释

function getPhoto(context:Context){ 
  let atManager = abilityAccessCtrl.createAtManager(); 
  // requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗 
  const permissions: Array<Permissions> = ['ohos.permission.READ_MEDIA',"ohos.permission.WRITE_MEDIA"]; 
  
  
  atManager.requestPermissionsFromUser(context, permissions).then(async (data) => { //需要用户允许授权图库权限 
    let grantStatus: Array<number> = data.authResults; 
    let length: number = grantStatus.length; 
    for (let i = 0; i < length; i++) { 
      if (grantStatus[i] === 0) {  //用户同意权限之后进行的操作 
        let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);  //context为getContext获取 
        console.info('albumGetAssetsDemoPromise'); 
        let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); //筛选条件 
        let predicates1: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();//筛选条件 
        let albumName: photoAccessHelper.AlbumKeys = photoAccessHelper.AlbumKeys.ALBUM_NAME; 
        let title: photoAccessHelper.PhotoKeys = photoAccessHelper.PhotoKeys.TITLE; 
        // predicates.equalTo(albumName, 'test2'); 
        let albumFetchOptions: photoAccessHelper.FetchOptions = { 
          fetchColumns: [], 
          predicates: predicates 
        }; 
        let fetchOption: photoAccessHelper.FetchOptions = { 
          fetchColumns: ['title'], 
          predicates: predicates1 
        }; 
        const albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper. 
        getAlbums(photoAccessHelper.AlbumType.USER   , photoAccessHelper.AlbumSubtype.ANY, albumFetchOptions); //获取满足条件的相册列表,如果没加筛选条件就是所有相册 
  
        while(await albumList.isAfterLast()!=null){ 
          console.info('photoAsset displayName: 数量',albumList.getCount()); 
          let album: photoAccessHelper.Album = await albumList.getNextObject(); //获取下一个 
          console.info('photoAsset displayName: ', album.albumName); //名字 
          console.info('photoAsset displayName: ', album.albumSubtype); //名字 
          console.info('photoAsset displayName:------------------------------------------------------- ') 
          album.getAssets(fetchOption).then(async (albumFetchResult) => { 
            while (!albumFetchResult.isAfterLast()) { //循环打印相册中的图片 
              let photoAsset: photoAccessHelper.PhotoAsset = await albumFetchResult.getNextObject(); 
              let photoTitle = photoAsset.get(title); 
              console.info(`xxxwidth is ${JSON.stringify(photoTitle)}`); 
              // console.info('photoAsset displayName: ', photoAsset.uri); //图片视频资源uri 
  
              // if (photoAsset === undefined) { 
              //   console.error('asset not exist'); 
              //   return; 
              // } 
              //  phAccessHelper.createDeleteRequest([photoAsset.uri]); 
              // console.info('createDeleteRequest successfully'); 
            } 
            console.info('photoAsset displayName:------------------------------------------------------- ') 
          }).catch((err: BusinessError) => { 
            console.error('album getPhotoAssets failed with error: ' + err); 
          }); 
        } 
  
      } else { 
        // 用户拒绝授权,提示用户必须授权才能访问当前页面的功能,并引导用户到系统设置中打开相应的权限 
        return; 
      } 
    } 
    // 授权成功 
  }).catch((err:BusinessError) => { 
    console.error(`requestPermissionsFromUser failed, code is ${err.code}, message is ${err.message}`); 
  }) 
}

注明适配的版本信息

本示例仅支持标准系统上运行,支持设备:华为手机或运行在DevEco Studio上的华为手机设备模拟器。

本示例为Stage模型,支持API version 10。

本示例需要使用DevEco Studio 4.0 Release版本进行编译运行。

分享
微博
QQ
微信
回复
2024-05-22 15:39:32
相关问题
获取网络图片并保存到相册
409浏览 • 1回复 待解决
如何获取鸿蒙系统手机相关信息
17174浏览 • 2回复 待解决
如何读取相册图片
201浏览 • 1回复 待解决
通过相册获取相册资源
379浏览 • 1回复 待解决
如何获取设备相关信息
693浏览 • 1回复 待解决
如何获取手机屏幕信息
276浏览 • 1回复 待解决
如何保存本地图片相册
222浏览 • 1回复 待解决
鸿蒙系统获取GPS相关信息
2551浏览 • 1回复 待解决
拉起相册选择图片页面失败
512浏览 • 1回复 待解决
用户相册, 获取不到albumName
538浏览 • 1回复 待解决
如何保存一张PNG图片相册
563浏览 • 1回复 待解决
如何保存网络图片相册
205浏览 • 1回复 待解决
如何对相册图片进行编辑裁剪
759浏览 • 1回复 待解决
进入相册或拍照选择图片做头像
12171浏览 • 2回复 已解决
OpenHarmony 设备 如何往相册传个图片
1166浏览 • 2回复 待解决
求大佬告知如何保存图片相册
344浏览 • 1回复 待解决
设备信息udid无法获取
598浏览 • 1回复 待解决
应用如何获取应用metadata信息
360浏览 • 1回复 待解决
ArkUI如何获取当前UI控件信息
759浏览 • 1回复 待解决
HarmonyOS如何获取用户相册所有目录?
646浏览 • 1回复 待解决
PhotoViewPicker如何获取原始信息
1182浏览 • 1回复 待解决
如何获取应用版本信息
686浏览 • 1回复 待解决