harmony 鸿蒙@ohos.file.photoAccessHelper (相册管理模块)

  • 2023-10-30
  • 浏览 (1069)

@ohos.file.photoAccessHelper (相册管理模块)

该模块提供相册管理模块能力,包括创建相册以及访问、修改相册中的媒体数据信息等。

说明:

  • 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

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

photoAccessHelper.getPhotoAccessHelper

getPhotoAccessHelper(context: Context): PhotoAccessHelper

获取相册管理模块模块的实例,用于访问和修改相册中的媒体文件。

模型约束: 此接口仅可在Stage模型下使用。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
context Context 传入Ability实例的Context。

返回值:

类型 说明
PhotoAccessHelper 相册管理模块模块的实例。

错误码:

接口抛出错误码的详细介绍请参见通用错误码

错误码ID 错误信息
401 if parameter is invalid.

示例:

//此处获取的phAccessHelper实例为全局对象,后续使用到phAccessHelper的地方默认为使用此处获取的对象,如未添加此段代码报phAccessHelper未定义的错误请自行添加
const context = getContext(this);
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);

PhotoAccessHelper

getAssets

getAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<PhotoAsset>>): void

获取图片和视频资源,使用callback方式返回结果。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

需要权限:ohos.permission.READ_IMAGEVIDEO

参数:

参数名 类型 必填 说明
options FetchOptions 图片和视频检索选项。
callback AsyncCallback<FetchResult<PhotoAsset>> callback返回图片和视频检索结果集。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getAssets');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };

  phAccessHelper.getAssets(fetchOptions, async (err, fetchResult) => {
    if (fetchResult != undefined) {
      console.info('fetchResult success');
      let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
      if (photoAsset != undefined) {
        console.info('photoAsset.displayName : ' + photoAsset.displayName);
      }
    } else {
      console.error('fetchResult fail' + err);
    }
  });
}

getAssets

getAssets(options: FetchOptions): Promise<FetchResult<PhotoAsset>>

获取图片和视频资源,使用Promise方式返回结果。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

需要权限:ohos.permission.READ_IMAGEVIDEO

参数:

参数名 类型 必填 说明
options FetchOptions 图片和视频检索选项。

返回值:

类型 说明
Promise<FetchResult<PhotoAsset>> Promise对象,返回图片和视频数据结果集。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getAssets');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
    if (fetchResult != undefined) {
      console.info('fetchResult success');
      let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
      if (photoAsset != undefined) {
        console.info('photoAsset.displayName :' + photoAsset.displayName);
      }
    }
  } catch (err) {
    console.error('getAssets failed, message = ', err);
  }
}

createAsset

createAsset(displayName: string, callback: AsyncCallback&lt;PhotoAsset&gt;): void

指定待创建的图片或者视频的文件名,创建图片或视频资源,使用callback方式返回结果。

系统接口:此接口为系统接口。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名 类型 必填 说明
displayName string 创建的图片或者视频文件名。
callback AsyncCallback&lt;PhotoAsset&gt; callback返回创建的图片和视频结果。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000001 Invalid display name.
14000011 System inner fail.

示例:

async function example() {
  console.info('createAssetDemo');
  let testFileName: string = 'testFile' + Date.now() + '.jpg';
  phAccessHelper.createAsset(testFileName, (err, photoAsset) => {
    if (photoAsset != undefined) {
      console.info('createAsset file displayName' + photoAsset.displayName);
      console.info('createAsset successfully');
    } else {
      console.error('createAsset failed, message = ', err);
    }
  });
}

createAsset

createAsset(displayName: string): Promise&lt;PhotoAsset&gt;

指定待创建的图片或者视频的文件名,创建图片或视频资源,使用Promise方式返回结果。

系统接口:此接口为系统接口。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名 类型 必填 说明
displayName string 创建的图片或者视频文件名。

返回值:

类型 说明
Promise&lt;PhotoAsset&gt; Promise对象,返回创建的图片和视频结果。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000001 Invalid display name.
14000011 System inner fail.

示例:

async function example() {
  console.info('createAssetDemo');
  try {
    let testFileName: string = 'testFile' + Date.now() + '.jpg';
    let photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName);
    console.info('createAsset file displayName' + photoAsset.displayName);
    console.info('createAsset successfully');
  } catch (err) {
    console.error('createAsset failed, message = ', err);
  }
}

createAsset

createAsset(displayName: string, options: PhotoCreateOptions, callback: AsyncCallback&lt;PhotoAsset&gt;): void

指定待创建的图片或者视频的文件名和创建选项,创建图片或视频资源,使用callback方式返回结果。

系统接口:此接口为系统接口。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名 类型 必填 说明
displayName string 创建的图片或者视频文件名。
options PhotoCreateOptions 图片或视频的创建选项。
callback AsyncCallback&lt;PhotoAsset&gt; callback返回创建的图片和视频结果。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000001 Invalid display name.
14000011 System inner fail.

示例:

async function example() {
  console.info('createAssetDemo');
  let testFileName: string = 'testFile' + Date.now() + '.jpg';
  let createOption: photoAccessHelper.PhotoCreateOptions = {
    subtype: photoAccessHelper.PhotoSubtype.DEFAULT
  }
  phAccessHelper.createAsset(testFileName, createOption, (err, photoAsset) => {
    if (photoAsset != undefined) {
      console.info('createAsset file displayName' + photoAsset.displayName);
      console.info('createAsset successfully');
    } else {
      console.error('createAsset failed, message = ', err);
    }
  });
}

createAsset

createAsset(displayName: string, options: PhotoCreateOptions): Promise&lt;PhotoAsset&gt;

指定待创建的图片或者视频的文件名和创建选项,创建图片或视频资源,使用Promise方式返回结果。

系统接口:此接口为系统接口。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名 类型 必填 说明
displayName string 创建的图片或者视频文件名。
options PhotoCreateOptions 图片或视频的创建选项。

返回值:

类型 说明
Promise&lt;PhotoAsset&gt; Promise对象,返回创建的图片和视频结果。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000001 Invalid display name.
14000011 System inner fail.

示例:

async function example() {
  console.info('createAssetDemo');
  try {
    let testFileName:string = 'testFile' + Date.now() + '.jpg';
    let createOption: photoAccessHelper.PhotoCreateOptions = {
      subtype: photoAccessHelper.PhotoSubtype.DEFAULT
    }
    let photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName, createOption);
    console.info('createAsset file displayName' + photoAsset.displayName);
    console.info('createAsset successfully');
  } catch (err) {
    console.error('createAsset failed, message = ', err);
  }
}

createAsset

createAsset(photoType: PhotoType, extension: string, options: CreateOptions, callback: AsyncCallback&lt;string&gt;): void

指定待创建的文件类型、后缀和创建选项,创建图片或视频资源,使用callback方式返回结果。

此接口在未申请相册管理模块权限’ohos.permission.WRITE_IMAGEVIDEO’时,可以使用安全控件创建媒体资源,详情请参考开发指南

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名 类型 必填 说明
photoType PhotoType 创建的文件类型,IMAGE或者VIDEO类型。
extension string 文件名后缀参数,例如:’jpg’。
options CreateOptions 创建选项,例如{title: ‘testPhoto’}。
callback AsyncCallback&lt;string&gt; callback返回创建的图片和视频的uri。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

async function example() {
  console.info('createAssetDemo');
  let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE;
  let extension:string = 'jpg';
  let options: photoAccessHelper.CreateOptions = {
    title: 'testPhoto'
  }
  phAccessHelper.createAsset(photoType, extension, options, (err, uri) => {
    if (uri != undefined) {
      console.info('createAsset uri' + uri);
      console.info('createAsset successfully');
    } else {
      console.error('createAsset failed, message = ', err);
    }
  });
}

createAsset

createAsset(photoType: PhotoType, extension: string, callback: AsyncCallback&lt;string&gt;): void

指定待创建的文件类型和后缀,创建图片或视频资源,使用callback方式返回结果。

此接口在未申请相册管理模块权限’ohos.permission.WRITE_IMAGEVIDEO’时,可以使用安全控件创建媒体资源,详情请参考开发指南

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名 类型 必填 说明
photoType PhotoType 创建的文件类型,IMAGE或者VIDEO类型。
extension string 文件名后缀参数,例如:’jpg’。
callback AsyncCallback&lt;string&gt; callback返回创建的图片和视频的uri。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

async function example() {
  console.info('createAssetDemo');
  let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE;
  let extension: string = 'jpg';
  phAccessHelper.createAsset(photoType, extension, (err, uri) => {
    if (uri != undefined) {
      console.info('createAsset uri' + uri);
      console.info('createAsset successfully');
    } else {
      console.error('createAsset failed, message = ', err);
    }
  });
}

createAsset

createAsset(photoType: PhotoType, extension: string, options?: CreateOptions): Promise&lt;string&gt;

指定待创建的文件类型、后缀和创建选项,创建图片或视频资源,使用Promise方式返回结果。

此接口在未申请相册管理模块权限’ohos.permission.WRITE_IMAGEVIDEO’时,可以使用安全控件创建媒体资源,详情请参考开发指南

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名 类型 必填 说明
photoType PhotoType 创建的文件类型,IMAGE或者VIDEO类型。
extension string 文件名后缀参数,例如:’jpg’。
options CreateOptions 创建选项,例如{title: ‘testPhoto’}。

返回值:

类型 说明
Promise&lt;string&gt; Promise对象,返回创建的图片和视频的uri。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

async function example() {
  console.info('createAssetDemo');
  try {
    let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE;
    let extension: string = 'jpg';
    let options: photoAccessHelper.CreateOptions = {
      title: 'testPhoto'
    }
    let uri: string = await phAccessHelper.createAsset(photoType, extension, options);
    console.info('createAsset uri' + uri);
    console.info('createAsset successfully');
  } catch (err) {
    console.error('createAsset failed, message = ', err);
  }
}

createAlbum

createAlbum(name: string, callback: AsyncCallback&lt;Album&gt;): void

创建相册,使用callback方式返回结果。

待创建的相册名参数规格为: - 相册名字符串长度为1~255。 - 不允许出现的非法英文字符,包括:
. .. \ / : * ? “ ‘ ` < >|{ } [ ] - 英文字符大小写不敏感。 - 相册名不允许重名。

系统接口:此接口为系统接口。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名 类型 必填 说明
name string 待创建相册的相册名。
callback AsyncCallback&lt;Album&gt; callback返回创建的相册实例。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900015 File exists.
13900020 Invalid argument.
14000011 System inner fail.

示例:

async function example() {
  console.info('createAlbumDemo');
  let albumName: string = 'newAlbumName' + new Date().getTime();
  phAccessHelper.createAlbum(albumName, (err, album) => {
    if (err) {
      console.error('createAlbumCallback failed with err: ' + err);
      return;
    }
    console.info('createAlbumCallback successfully, album: ' + album.albumName + ' album uri: ' + album.albumUri);
  });
}

createAlbum

createAlbum(name: string): Promise&lt;Album&gt;

创建相册,使用Promise方式返回结果。

待创建的相册名参数规格为: - 相册名字符串长度为1~255。 - 不允许出现的非法英文字符,包括:
. .. \ / : * ? ” ’ ` < >|{ } [ ] - 英文字符大小写不敏感。 - 相册名不允许重名。

系统接口:此接口为系统接口。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名 类型 必填 说明
name string 待创建相册的相册名。

返回值:

类型 说明
Promise&lt;Album&gt; Promise对象,返回创建的相册实例。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900015 File exists.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import { BusinessError } from '@ohos.base';

async function example() {
  console.info('createAlbumDemo');
  let albumName: string = 'newAlbumName' + new Date().getTime();
  phAccessHelper.createAlbum(albumName).then((album) => {
    console.info('createAlbumPromise successfully, album: ' + album.albumName + ' album uri: ' + album.albumUri);
  }).catch((err: BusinessError) => {
    console.error('createAlbumPromise failed with err: ' + err);
  });
}

deleteAlbums

deleteAlbums(albums: Array&lt;Album&gt;, callback: AsyncCallback&lt;void&gt;): void

删除相册,使用callback方式返回结果。

删除相册前需先确保相册存在,只能删除用户相册。

系统接口:此接口为系统接口。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名 类型 必填 说明
albums Array&lt;Album&gt; 待删除相册的数组。
callback AsyncCallback&lt;void&gt; callback返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  // 示例代码为删除相册名为newAlbumName的相册。
  console.info('deleteAlbumsDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  predicates.equalTo('album_name', 'newAlbumName');
  let fetchOptions: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions);
  let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
  phAccessHelper.deleteAlbums([album], (err) => {
    if (err) {
      console.error('deletePhotoAlbumsCallback failed with err: ' + err);
      return;
    }
    console.info('deletePhotoAlbumsCallback successfully');
  });
  fetchResult.close();
}

deleteAlbums

deleteAlbums(albums: Array&lt;Album&gt;): Promise&lt;void&gt;

删除相册,使用Promise方式返回结果。

删除相册前需先确保相册存在,只能删除用户相册。

系统接口:此接口为系统接口。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

需要权限:ohos.permission.WRITE_IMAGEVIDEO

参数:

参数名 类型 必填 说明
albums Array&lt;Album&gt; 待删除相册的数组。

返回值:

类型 说明
Promise&lt;void&gt; Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  // 示例代码为删除相册名为newAlbumName的相册。
  console.info('deleteAlbumsDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  predicates.equalTo('album_name', 'newAlbumName');
  let fetchOptions: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions);
  let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
  phAccessHelper.deleteAlbums([album]).then(() => {
    console.info('deletePhotoAlbumsPromise successfully');
    }).catch((err: BusinessError) => {
      console.error('deletePhotoAlbumsPromise failed with err: ' + err);
  });
  fetchResult.close();
}

getAlbums

getAlbums(type: AlbumType, subtype: AlbumSubtype, options: FetchOptions, callback: AsyncCallback&lt;FetchResult&lt;Album&gt;&gt;): void

根据检索选项和相册类型获取相册,使用callback方式返回结果。

获取相册前需先保证相册存在。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

需要权限:ohos.permission.READ_IMAGEVIDEO

参数:

参数名 类型 必填 说明
type AlbumType 相册类型。
subtype AlbumSubtype 相册子类型。
options FetchOptions 检索选项。
callback AsyncCallback&lt;FetchResult&lt;Album&gt;&gt; callback返回获取相册的结果集。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  // 示例代码中为获取相册名为newAlbumName的相册。
  console.info('getAlbumsDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  predicates.equalTo('album_name', 'newAlbumName');
  let fetchOptions: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions, async (err, fetchResult) => {
    if (err) {
      console.error('getAlbumsCallback failed with err: ' + err);
      return;
    }
    if (fetchResult == undefined) {
      console.error('getAlbumsCallback fetchResult is undefined');
      return;
    }
    let album = await fetchResult.getFirstObject();
    console.info('getAlbumsCallback successfully, albumName: ' + album.albumName);
    fetchResult.close();
  });
}

getAlbums

getAlbums(type: AlbumType, subtype: AlbumSubtype, callback: AsyncCallback&lt;FetchResult&lt;Album&gt;&gt;): void

根据相册类型获取相册,使用callback方式返回结果。

获取相册前需先保证相册存在。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

需要权限:ohos.permission.READ_IMAGEVIDEO

参数:

参数名 类型 必填 说明
type AlbumType 相册类型。
subtype AlbumSubtype 相册子类型。
callback AsyncCallback&lt;FetchResult&lt;Album&gt;&gt; callback返回获取相册的结果集。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

async function example() {
  // 示例代码中为获取统相册VIDEO,默认已预置。
  console.info('getAlbumsDemo');
  phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.VIDEO, async (err, fetchResult) => {
    if (err) {
      console.error('getAlbumsCallback failed with err: ' + err);
      return;
    }
    if (fetchResult == undefined) {
      console.error('getAlbumsCallback fetchResult is undefined');
      return;
    }
    let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
    console.info('getAlbumsCallback successfully, albumUri: ' + album.albumUri);
    fetchResult.close();
  });
}

getAlbums

getAlbums(type: AlbumType, subtype: AlbumSubtype, options?: FetchOptions): Promise&lt;FetchResult&lt;Album&gt;&gt;

根据检索选项和相册类型获取相册,使用Promise方式返回结果。

获取相册前需先保证相册存在。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

需要权限:ohos.permission.READ_IMAGEVIDEO

参数:

参数名 类型 必填 说明
type AlbumType 相册类型。
subtype AlbumSubtype 相册子类型。
options FetchOptions 检索选项,不填时默认根据相册类型检索。

返回值:

类型 说明
Promise&lt;FetchResult&lt;Album&gt;&gt; Promise对象,返回获取相册的结果集。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  // 示例代码中为获取相册名为newAlbumName的相册。
  console.info('getAlbumsDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  predicates.equalTo('album_name', 'newAlbumName');
  let fetchOptions: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions).then( async (fetchResult) => {
    if (fetchResult == undefined) {
      console.error('getAlbumsPromise fetchResult is undefined');
      return;
    }
    let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
    console.info('getAlbumsPromise successfully, albumName: ' + album.albumName);
    fetchResult.close();
  }).catch((err: BusinessError) => {
    console.error('getAlbumsPromise failed with err: ' + err);
  });
}

deleteAssets

deleteAssets(uriList: Array&lt;string&gt;, callback: AsyncCallback&lt;void&gt;): void

删除媒体文件,删除的文件进入到回收站,使用callback方式返回结果。

系统接口:此接口为系统接口。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
uriList Array&lt;string&gt; 待删除的媒体文件uri数组。
callback AsyncCallback&lt;void&gt; callback返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000002 Invalid uri.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('deleteAssetDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    if (asset == undefined) {
      console.error('asset not exist');
      return;
    }
    phAccessHelper.deleteAssets([asset.uri], (err) => {
      if (err == undefined) {
        console.info('deleteAssets successfully');
      } else {
        console.error('deleteAssets failed with error: ' + err);
      }
    });
  } catch (err) {
    console.info('fetch failed, message =', err);
  }
}

deleteAssets

deleteAssets(uriList: Array&lt;string&gt;): Promise&lt;void&gt;

删除媒体文件,删除的文件进入到回收站,使用Promise方式返回结果。

系统接口:此接口为系统接口。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
uriList Array&lt;string&gt; 待删除的媒体文件uri数组。

返回值:

类型 说明
Promise&lt;void&gt; Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000002 Invalid uri.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('deleteDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
    const fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    if (asset == undefined) {
      console.error('asset not exist');
      return;
    }
    await phAccessHelper.deleteAssets([asset.uri]);
    console.info('deleteAssets successfully');
  } catch (err) {
    console.error('deleteAssets failed with error: ' + err);
  }
}

registerChange

registerChange(uri: string, forChildUris: boolean, callback: Callback&lt;ChangeData&gt;) : void

注册对指定uri的监听,使用callback方式返回异步结果。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
uri string PhotoAsset的uri, Album的uri或DefaultChangeUri的值。
forChildUris boolean 是否模糊监听,uri为相册uri时,forChildUris为true能监听到相册中文件的变化,如果是false只能监听相册本身变化。uri为photoAsset时,forChildUris为true、false没有区别,uri为DefaultChangeUri时,forChildUris必须为true,如果为false将找不到该uri,收不到任何消息。
callback Callback&lt;ChangeData&gt; 返回要监听的ChangeData。注:uri可以注册多个不同的callback监听,unRegisterChange可以关闭该uri所有监听,也可以关闭指定callback的监听。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('registerChangeDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
  let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
  if (photoAsset != undefined) {
    console.info('photoAsset.displayName : ' + photoAsset.displayName);
  }
  let onCallback1 = (changeData: photoAccessHelper.ChangeData) => {
      console.info('onCallback1 success, changData: ' + JSON.stringify(changeData));
    //file had changed, do something
  }
  let onCallback2 = (changeData: photoAccessHelper.ChangeData) => {
      console.info('onCallback2 success, changData: ' + JSON.stringify(changeData));
    //file had changed, do something
  }
  // 注册onCallback1监听
  phAccessHelper.registerChange(photoAsset.uri, false, onCallback1);
  // 注册onCallback2监听
  phAccessHelper.registerChange(photoAsset.uri, false, onCallback2);

  photoAsset.setFavorite(true, (err) => {
    if (err == undefined) {
      console.info('setFavorite successfully');
    } else {
      console.error('setFavorite failed with error:' + err);
    }
  });
}

unRegisterChange

unRegisterChange(uri: string, callback?: Callback&lt;ChangeData&gt;): void

取消指定uri的监听,一个uri可以注册多个监听,存在多个callback监听时,可以取消指定注册的callback的监听;不指定callback时取消该uri的所有监听。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
uri string PhotoAsset的uri, Album的uri或DefaultChangeUri的值。
callback Callback&lt;ChangeData&gt; 取消registerChange注册时的callback的监听,不填时,取消该uri的所有监听。注:off指定注册的callback后不会进入此回调。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('offDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
  let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
  if (photoAsset != undefined) {
    console.info('photoAsset.displayName : ' + photoAsset.displayName);
  }
  let onCallback1 = (changeData: photoAccessHelper.ChangeData) => {
    console.info('onCallback1 on');
  }
  let onCallback2 = (changeData: photoAccessHelper.ChangeData) => {
    console.info('onCallback2 on');
  }
  // 注册onCallback1监听
  phAccessHelper.registerChange(photoAsset.uri, false, onCallback1);
  // 注册onCallback2监听
  phAccessHelper.registerChange(photoAsset.uri, false, onCallback2);
  // 关闭onCallback1监听,onCallback2 继续监听
  phAccessHelper.unRegisterChange(photoAsset.uri, onCallback1);
  photoAsset.setFavorite(true, (err) => {
    if (err == undefined) {
      console.info('setFavorite successfully');
    } else {
      console.error('setFavorite failed with error:' + err);
    }
  });
}

createDeleteRequest

createDeleteRequest(uriList: Array&lt;string&gt;, callback: AsyncCallback&lt;void&gt;): void

创建一个弹出框来删除照片,删除的文件进入到回收站,使用callback方式返回结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
uriList Array&lt;string&gt; 待删除的媒体文件uri数组,最大删除数量300。
callback AsyncCallback&lt;void&gt; callback返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('createDeleteRequestDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
    const fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    if (asset == undefined) {
      console.error('asset not exist');
      return;
    }
    phAccessHelper.createDeleteRequest([asset.uri], (err) => {
      if (err == undefined) {
        console.info('createDeleteRequest successfully');
      } else {
        console.error('createDeleteRequest failed with error: ' + err);
      }
    });
  } catch (err) {
    console.info('fetch failed, message =', err);
  }
}

createDeleteRequest

createDeleteRequest(uriList: Array&lt;string&gt;): Promise&lt;void&gt;

创建一个弹出框来删除照片,删除的文件进入到回收站,使用Promise方式返回结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
uriList Array&lt;string&gt; 待删除的媒体文件uri数组,最大删除数量300。

返回值:

类型 说明
Promise&lt;void&gt; Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('createDeleteRequestDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOptions: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
    const fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    if (asset == undefined) {
      console.error('asset not exist');
      return;
    }
    await phAccessHelper.createDeleteRequest([asset.uri]);
    console.info('createDeleteRequest successfully');
  } catch (err) {
    console.error('createDeleteRequest failed with error: ' + err);
  }
}

getPhotoIndex

getPhotoIndex(photoUri: string, albumUri: string, options: FetchOptions, callback: AsyncCallback&lt;number&gt;): void

获取相册中图片或视频的位置,使用callback方式返回结果。

系统接口:此接口为系统接口。

需要权限:ohos.permission.READ_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
photoUri string 所查询的图库资源的uri。
albumUri string 相册uri,可以为空字符串,为空字符串时默认查询全部图库资源。
options FetchOptions 检索选项,predicates中必须设置一种检索排序方式,不设置或多设置均会导致接口调用异常。

返回值:

类型 说明
AsyncCallback&lt;number&gt; 返回相册中资源的索引。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('getPhotoIndexDemo');
    let predicatesForGetAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOp: photoAccessHelper.FetchOptions = {
      fetchColumns: [],
      predicates: predicatesForGetAsset
    };
    // Obtain the uri of the album
    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.FAVORITE, fetchOp);
    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    predicates.orderByAsc(photoAccessHelper.PhotoKeys.DATE_MODIFIED);
    let fetchOptions: photoAccessHelper.FetchOptions = {
      fetchColumns: [photoAccessHelper.PhotoKeys.DATE_MODIFIED],
      predicates: predicates
    };
    let photoFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions);
    let expectIndex = 1;
    // Obtain the uri of the second file
    let photoAsset: photoAccessHelper.PhotoAsset = await photoFetchResult.getObjectByPosition(expectIndex);

    phAccessHelper.getPhotoIndex(photoAsset.uri, album.albumUri, fetchOptions, (err, index) => {
      if (err == undefined) {
        console.info(`getPhotoIndex successfully and index is : ${index}`);
      } else {
        console.info(`getPhotoIndex failed;`);
      }
    });
  } catch (error) {
    console.info(`getPhotoIndex failed; error: ${error}`);
  }
}

getPhotoIndex

getPhotoIndex(photoUri: string, albumUri: string, options: FetchOptions): Promise&lt;number&gt;

获取相册中图片或视频的位置,使用Promise方式返回结果。

系统接口:此接口为系统接口。

需要权限:ohos.permission.READ_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
photoUri string 所查询的图库资源的uri。
albumUri string 相册uri,可以为空字符串,为空字符串时默认查询全部图库资源。
options FetchOptions 检索选项,predicates中必须设置一种检索排序方式,不设置或多设置均会导致接口调用异常。

返回值:

类型 说明
Promise&lt;number&gt; 返回相册中资源的索引。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  try {
    console.info('getPhotoIndexDemo');
    let predicatesForGetAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOp: photoAccessHelper.FetchOptions = {
      fetchColumns: [],
      predicates: predicatesForGetAsset
    };
    // Obtain the uri of the album
    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.FAVORITE, fetchOp);
    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    predicates.orderByAsc(photoAccessHelper.PhotoKeys.DATE_MODIFIED);
    let fetchOptions: photoAccessHelper.FetchOptions = {
      fetchColumns: [photoAccessHelper.PhotoKeys.DATE_MODIFIED],
      predicates: predicates
    };
    let photoFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions);
    let expectIndex = 1;
    // Obtain the uri of the second file
    let photoAsset: photoAccessHelper.PhotoAsset = await photoFetchResult.getObjectByPosition(expectIndex);
    phAccessHelper.getPhotoIndex(photoAsset.uri, album.albumUri, fetchOptions).then((index) => {
      console.info(`getPhotoIndex successfully and index is : ${index}`);
    }).catch((err: BusinessError) => {
      console.info(`getPhotoIndex failed; error: ${err}`);
    });
  } catch (error) {
    console.info(`getPhotoIndex failed; error: ${error}`);
  }
}

release

release(callback: AsyncCallback&lt;void&gt;): void

释放PhotoAccessHelper实例。 当后续不需要使用PhotoAccessHelper实例中的方法时调用。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
callback AsyncCallback&lt;void&gt; 回调表示成功还是失败。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000011 System inner fail.

示例:

async function example() {
  console.info('releaseDemo');
  phAccessHelper.release((err) => {
    if (err != undefined) {
      console.error('release failed. message = ', err);
    } else {
      console.info('release ok.');
    }
  });
}

release

release(): Promise&lt;void&gt;

释放PhotoAccessHelper实例。 当后续不需要使用PhotoAccessHelper 实例中的方法时调用。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

返回值:

类型 说明
Promise&lt;void&gt; Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000011 System inner fail.

示例:

async function example() {
  console.info('releaseDemo');
  try {
    await phAccessHelper.release();
    console.info('release ok.');
  } catch (err) {
    console.error('release failed. message = ', err);
  }
}

PhotoAsset

提供封装文件属性的方法。

属性

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 类型 可读 可写 说明
uri string 媒体文件资源uri(如:file://media/Photo/1/IMG_datetime_0001/displayName.jpg),详情参见用户文件uri介绍中的媒体文件uri
photoType PhotoType 媒体文件类型
displayName string 显示文件名,包含后缀名。

get

get(member: string): MemberType;

获取PhotoAsset成员参数。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
member string 成员参数名称,在get时,除了uri、photoType和displayName三个属性之外,其他的属性都需要在fetchColumns中填入需要get的PhotoKeys,例如:get title属性fetchColumns: [‘title’]。

返回值:

类型 说明
MemberType 获取PhotoAsset成员参数的值。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000014 Member is not a valid PhotoKey.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('photoAssetGetDemo');
  try {
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: photoAccessHelper.FetchOptions = {
      fetchColumns: ['title'],
      predicates: predicates
    };
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    let title: photoAccessHelper.PhotoKeys = photoAccessHelper.PhotoKeys.TITLE;
    let photoAssetTitle: photoAccessHelper.MemberType = photoAsset.get(title.toString());
    console.info('photoAsset Get photoAssetTitle = ', photoAssetTitle);
  } catch (err) {
    console.error('release failed. message = ', err);
  }
}

set

set(member: string, value: string): void

设置PhotoAsset成员参数。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
member string 成员参数名称例如:PhotoKeys.TITLE。
value string 设置成员参数名称,只能修改PhotoKeys.TITLE的值。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000014 Member is not a valid PhotoKey.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('photoAssetSetDemo');
  try {
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: photoAccessHelper.FetchOptions = {
      fetchColumns: ['title'],
      predicates: predicates
    };
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    let title: string = photoAccessHelper.PhotoKeys.TITLE.toString();
    photoAsset.set(title, 'newTitle');
  } catch (err) {
    console.error('release failed. message = ', err);
  }
}

commitModify

commitModify(callback: AsyncCallback&lt;void&gt;): void

修改文件的元数据,使用callback方式返回异步结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
callback AsyncCallback&lt;void&gt; callback返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if values to commit is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000001 Invalid display name.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('commitModifyDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: ['title'],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
  let title: string = photoAccessHelper.PhotoKeys.TITLE.toString();
  let photoAssetTitle: photoAccessHelper.MemberType = photoAsset.get(title);
  console.info('photoAsset get photoAssetTitle = ', photoAssetTitle);
  photoAsset.set(title, 'newTitle2');
  photoAsset.commitModify((err) => {
    if (err == undefined) {
      let newPhotoAssetTitle: photoAccessHelper.MemberType = photoAsset.get(title);
      console.info('photoAsset get newPhotoAssetTitle = ', newPhotoAssetTitle);
    } else {
      console.error('commitModify failed, message =', err);
    }
  });
}

commitModify

commitModify(): Promise&lt;void&gt;

修改文件的元数据,使用promise方式返回异步结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

返回值:

类型 说明
Promise&lt;void&gt; Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if values to commit is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000001 Invalid display name.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('commitModifyDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: ['title'],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
  let title: string = photoAccessHelper.PhotoKeys.TITLE.toString();
  let photoAssetTitle: photoAccessHelper.MemberType = photoAsset.get(title);
  console.info('photoAsset get photoAssetTitle = ', photoAssetTitle);
  photoAsset.set(title, 'newTitle3');
  try {
    await photoAsset.commitModify();
    let newPhotoAssetTitle: photoAccessHelper.MemberType = photoAsset.get(title);
    console.info('photoAsset get newPhotoAssetTitle = ', newPhotoAssetTitle);
  } catch (err) {
    console.error('release failed. message = ', err);
  }
}

open

open(mode: string, callback: AsyncCallback&lt;number&gt;): void

打开当前文件,使用callback方式返回异步结果。

注意:当前写操作是互斥的操作,写操作完成后需要调用close进行释放。

系统接口:此接口为系统接口。

需要权限:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
mode string 打开文件方式,如:’r’(只读), ‘w’(只写), ‘rw’(读写)。
callback AsyncCallback&lt;number&gt; callback返回文件描述符。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

async function example() {
  console.info('openDemo');
   let testFileName: string = 'testFile' + Date.now() + '.jpg';
  const photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName);
  photoAsset.open('rw', (err, fd) => {
    if (fd != undefined) {
      console.info('File fd' + fd);
      photoAsset.close(fd);
    } else {
      console.error('File err' + err);
    }
  });
}

open

open(mode: string): Promise&lt;number&gt;

打开当前文件,使用promise方式返回异步结果。

注意:当前写操作是互斥的操作,写操作完成后需要调用close进行释放。

系统接口:此接口为系统接口。

需要权限:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
mode string 打开文件方式,如:’r’(只读), ‘w’(只写), ‘rw’(读写)。

返回值:

类型 说明
Promise&lt;number&gt; Promise对象,返回文件描述符。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

async function example() {
  console.info('openDemo');
  try {
    let testFileName: string = 'testFile' + Date.now() + '.jpg';
    const photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName);
    let fd: number = await photoAsset.open('rw');
    if (fd != undefined) {
      console.info('File fd' + fd);
      photoAsset.close(fd);
    } else {
      console.error(' open File fail');
    }
  } catch (err) {
    console.error('open Demo err' + err);
  }
}

getReadOnlyFd

getReadOnlyFd(callback: AsyncCallback&lt;number&gt;): void

以只读方式打开当前文件,使用callback方式返回异步结果。

注意:读操作完成后需要调用close进行释放。

需要权限:ohos.permission.READ_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
callback AsyncCallback&lt;number&gt; callback返回文件描述符。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

async function example() {
  console.info('getReadOnlyFdDemo');
   let testFileName: string = 'testFile' + Date.now() + '.jpg';
  const photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName);
  photoAsset.getReadOnlyFd((err, fd) => {
    if (fd != undefined) {
      console.info('File fd' + fd);
      photoAsset.close(fd);
    } else {
      console.error('File err' + err);
    }
  });
}

getReadOnlyFd

getReadOnlyFd(): Promise&lt;number&gt;

以只读方式打开当前文件,使用promise方式返回异步结果。

注意:读操作完成后需要调用close进行释放。

需要权限:ohos.permission.READ_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

返回值:

类型 说明
Promise&lt;number&gt; Promise对象,返回文件描述符。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

async function example() {
  console.info('getReadOnlyFdDemo');
  try {
    let testFileName: string = 'testFile' + Date.now() + '.jpg';
    const photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName);
    let fd: number = await photoAsset.getReadOnlyFd();
    if (fd != undefined) {
      console.info('File fd' + fd);
      photoAsset.close(fd);
    } else {
      console.error(' open File fail');
    }
  } catch (err) {
    console.error('open Demo err' + err);
  }
}

close

close(fd: number, callback: AsyncCallback&lt;void&gt;): void

关闭当前文件,使用callback方式返回异步结果。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
fd number 文件描述符。
callback AsyncCallback&lt;void&gt; callback返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('closeDemo');
  try {
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: photoAccessHelper.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
    const photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    let fd: number = await photoAsset.open('rw');
    console.info('file fd', fd);
    photoAsset.close(fd, (err) => {
      if (err == undefined) {
        console.info('asset close succeed.');
      } else {
        console.error('close failed, message = ' + err);
      }
    });
  } catch (err) {
    console.error('close failed, message = ' + err);
  }
}

close

close(fd: number): Promise&lt;void&gt;

关闭当前文件,使用promise方式返回异步结果。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
fd number 文件描述符。

返回值:

类型 说明
Promise&lt;void&gt; Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('closeDemo');
  try {
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: photoAccessHelper.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
    const asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    let fd = await asset.open('rw');
    console.info('file fd', fd);
    await asset.close(fd);
    console.info('asset close succeed.');
  } catch (err) {
    console.error('close failed, message = ' + err);
  }
}

getThumbnail

getThumbnail(callback: AsyncCallback&lt;image.PixelMap&gt;): void

获取文件的缩略图,使用callback方式返回异步结果。

需要权限:ohos.permission.READ_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
callback AsyncCallback&lt;image.PixelMap&gt; callback返回缩略图的PixelMap。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getThumbnailDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  const asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
  console.info('asset displayName = ', asset.displayName);
  asset.getThumbnail((err, pixelMap) => {
    if (err == undefined) {
      console.info('getThumbnail successful ' + pixelMap);
    } else {
      console.error('getThumbnail fail', err);
    }
  });
}

getThumbnail

getThumbnail(size: image.Size, callback: AsyncCallback&lt;image.PixelMap&gt;): void

获取文件的缩略图,传入缩略图尺寸,使用callback方式返回异步结果。

需要权限:ohos.permission.READ_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
size image.Size 缩略图尺寸。
callback AsyncCallback&lt;image.PixelMap&gt; callback返回缩略图的PixelMap。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import image from '@ohos.multimedia.image'

async function example() {
  console.info('getThumbnailDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let size: image.Size = { width: 720, height: 720 };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  const asset = await fetchResult.getFirstObject();
  console.info('asset displayName = ', asset.displayName);
  asset.getThumbnail(size, (err, pixelMap) => {
    if (err == undefined) {
      console.info('getThumbnail successful ' + pixelMap);
    } else {
      console.error('getThumbnail fail', err);
    }
  });
}

getThumbnail

getThumbnail(size?: image.Size): Promise&lt;image.PixelMap&gt;

获取文件的缩略图,传入缩略图尺寸,使用promise方式返回异步结果。

需要权限:ohos.permission.READ_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
size image.Size 缩略图尺寸。

返回值:

类型 说明
Promise&lt;image.PixelMap&gt; Promise对象,返回缩略图的PixelMap。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import image from '@ohos.multimedia.image'
import { BusinessError } from '@ohos.base';

async function example() {
  console.info('getThumbnailDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let size: image.Size = { width: 720, height: 720 };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  const asset = await fetchResult.getFirstObject();
  console.info('asset displayName = ', asset.displayName);
  asset.getThumbnail(size).then((pixelMap) => {
    console.info('getThumbnail successful ' + pixelMap);
  }).catch((err: BusinessError) => {
    console.error('getThumbnail fail' + err);
  });
}

setFavorite

setFavorite(favoriteState: boolean, callback: AsyncCallback&lt;void&gt;): void

将文件设置为收藏文件,使用callback方式返回异步结果。

系统接口:此接口为系统接口。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
favoriteState boolean 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏。
callback AsyncCallback&lt;void&gt; callback返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('setFavoriteDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  const asset = await fetchResult.getFirstObject();
  asset.setFavorite(true, (err) => {
    if (err == undefined) {
      console.info('favorite successfully');
    } else {
      console.error('favorite failed with error:' + err);
    }
  });
}

setFavorite

setFavorite(favoriteState: boolean): Promise&lt;void&gt;

将文件设置为收藏文件,使用promise方式返回异步结果。

系统接口:此接口为系统接口。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
favoriteState boolean 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏。

返回值:

类型 说明
Promise&lt;void&gt; Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  console.info('setFavoriteDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  const asset = await fetchResult.getFirstObject();
  asset.setFavorite(true).then(() => {
    console.info('setFavorite successfully');
  }).catch((err: BusinessError) => {
    console.error('setFavorite failed with error:' + err);
  });
}

setHidden

setHidden(hiddenState: boolean, callback: AsyncCallback&lt;void&gt;): void

将文件设置为隐私文件,使用callback方式返回异步结果。

隐私文件存在隐私相册中,用户通过隐私相册去获取隐私文件后可以通过设置hiddenState为false来从隐私相册中移除。

系统接口:此接口为系统接口。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
hiddenState boolean 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。
callback AsyncCallback&lt;void&gt; callback返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('setHiddenDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  const asset = await fetchResult.getFirstObject();
  asset.setHidden(true, (err) => {
    if (err == undefined) {
      console.info('setHidden successfully');
    } else {
      console.error('setHidden failed with error:' + err);
    }
  });
}

setHidden

setHidden(hiddenState: boolean): Promise&lt;void&gt;

将文件设置为隐私文件,使用promise方式返回异步结果。

隐私文件存在隐私相册中,用户通过隐私相册去获取隐私文件后可以通过设置hiddenState为false来从隐私相册中移除。

系统接口:此接口为系统接口。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
hiddenState boolean 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。

返回值:

类型 说明
Promise&lt;void&gt; Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  // 示例代码为将文件从隐藏相册中恢复,需要先在隐藏相册预置资源
  console.info('setHiddenDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.HIDDEN);
  const album = await albumList.getFirstObject();
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
  const asset = await fetchResult.getFirstObject();
  asset.setHidden(false).then(() => {
    console.info('setHidden successfully');
  }).catch((err: BusinessError) => {
    console.error('setHidden failed with error:' + err);
  });
}

getExif10+

getExif(): Promise&lt;string&gt;

返回jpg格式图片Exif标签组成的json格式的字符串,该方法使用Promise方式返回结果。

注意:此接口返回的是exif标签组成的json格式的字符串,完整exif信息由all_exif与PhotoKeys.USER_COMMENT组成,fetchColumns需要传入这两个字段。

系统接口:此接口为系统接口。

需要权限:ohos.permission.READ_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

返回值:

类型 说明
Promise&lt;string&gt; 返回Exif标签组成的json格式的字符串。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

支持Exif标签列表

Exif标签的详细信息请参考image.PropertyKey

标签key值 标签说明
BitsPerSample 每个像素比特数
Orientation 图像方向
ImageLength 图像长度
ImageWidth 图像宽度
GPSLatitude GPS纬度
GPSLongitude GPS经度
GPSLatitudeRef 经度引用,例如W或E
GPSLongitudeRef 纬度引用,例如N或S
DateTimeOriginal 拍摄时间
ExposureTime 曝光时间
SceneType 场景类型
ISOSpeedRatings ISO感光度分值
FNumber 光圈F值
DateTime 修改时间
GPSTimeStamp GPS时间戳
GPSDateStamp GPS日期戳
ImageDescription 图像描述
Make 制造商
MakeNote 制造商
Model 型号
PhotoMode 拍摄模式
SensitivityType 感光类型
StandardOutputSensitivity 标准输出感光度
RecommendedExposureIndex 推荐曝光指数
ApertureValue 光圈
MeteringMode 测光模式
LightSource 光源
Flash 闪光灯
FocalLength 镜头焦距
UserComment 用户注释
PixelXDimension 有效图像宽度
PixelYDimension 有效图像高度
WhiteBalance 白平衡
FocalLengthIn35mmFilm 35mm等效焦距
ExposureBiasValue 曝光补偿

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('getExifDemo');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOptions: photoAccessHelper.FetchOptions = {
      fetchColumns: [ 'all_exif',  photoAccessHelper.PhotoKeys.USER_COMMENT],
      predicates: predicates
    };
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    let exifMessage = await photoAsset.getExif();
    let userCommentKey = 'UserComment';
    let userComment = JSON.stringify(JSON.parse(exifMessage), [userCommentKey]);
    fetchResult.close();
  } catch (err) {
    console.error('getExifDemoCallback failed with error: ' + err);
  }
}

getExif10+

getExif(callback: AsyncCallback&lt;string&gt;): void

返回jpg格式图片Exif标签组成的json格式的字符串,该方法使用Promise方式返回结果。

注意:此接口返回的是exif标签组成的json格式的字符串,完整exif信息由all_exif与PhotoKeys.USER_COMMENT组成,fetchColumns需要传入这两个字段。

系统接口:此接口为系统接口。

需要权限:ohos.permission.READ_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
callback AsyncCallback&lt;string&gt; 返回Exif字段组成的json格式的字符串。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

支持Exif标签列表

Exif标签的详细信息请参考image.PropertyKey

标签key值 标签说明
BitsPerSample 每个像素比特数
Orientation 图像方向
ImageLength 图像长度
ImageWidth 图像宽度
GPSLatitude GPS纬度
GPSLongitude GPS经度
GPSLatitudeRef 经度引用,例如W或E
GPSLongitudeRef 纬度引用,例如N或S
DateTimeOriginal 拍摄时间
ExposureTime 曝光时间
SceneType 场景类型
ISOSpeedRatings ISO感光度分值
FNumber 光圈F值
DateTime 修改时间
GPSTimeStamp GPS时间戳
GPSDateStamp GPS日期戳
ImageDescription 图像描述
Make 制造商
MakeNote 制造商
Model 型号
PhotoMode 拍摄模式
SensitivityType 感光类型
StandardOutputSensitivity 标准输出感光度
RecommendedExposureIndex 推荐曝光指数
ApertureValue 光圈
MeteringMode 测光模式
LightSource 光源
Flash 闪光灯
FocalLength 镜头焦距
UserComment 用户注释
PixelXDimension 有效图像宽度
PixelYDimension 有效图像高度
WhiteBalance 白平衡
FocalLengthIn35mmFilm 35mm等效焦距
ExposureBiasValue 曝光补偿

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('getExifDemo');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    predicates.isNotNull('all_exif')
    let fetchOptions: photoAccessHelper.FetchOptions = {
      fetchColumns: ['all_exif', photoAccessHelper.PhotoKeys.USER_COMMENT],
      predicates: predicates
    };
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    console.info('getExifDemo photoAsset displayName: ' + JSON.stringify(photoAsset.displayName));
    let userCommentKey = 'UserComment';
    photoAsset.getExif((err, exifMessage) => {
      if (exifMessage != undefined) {
        let userComment = JSON.stringify(JSON.parse(exifMessage), [userCommentKey]);
        console.info('getExifDemo userComment: ' + JSON.stringify(userComment));
      } else {
        console.error('getExif failed, message = ', err);
      }
    });
    fetchResult.close();
  } catch (err) {
    console.error('getExifDemoCallback failed with error: ' + err);
  }
}

setUserComment10+

setUserComment(userComment: string): Promise&lt;void&gt;

修改图片或者视频的备注信息,该方法使用Promise来返回结果。

注意:此接口只可修改图片或者视频的备注信息。

系统接口:此接口为系统接口。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
userComment string 待修改的图片或视频的备注信息,备注信息最长为140字符。

返回值:

类型 说明
Promise&lt;void&gt; Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('setUserCommentDemo')
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOptions: photoAccessHelper.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    let userComment = 'test_set_user_comment';
    await photoAsset.setUserComment(userComment);
  } catch (err) {
    console.error('setUserCommentDemoCallback failed with error: ' + err);
  }
}

setUserComment10+

setUserComment(userComment: string, callback: AsyncCallback&lt;void&gt;): void

修改图片或者视频的备注信息,该方法使用callback形式来返回结果。

注意:此接口只可修改图片或者视频的备注信息。

系统接口:此接口为系统接口。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
userComment string 待修改的图片或视频的备注信息,备注信息最长为140字符。
callback AsyncCallback&lt;void&gt; callback返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('setUserCommentDemo')
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOptions: photoAccessHelper.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    let userComment = 'test_set_user_comment';
    photoAsset.setUserComment(userComment, (err) => {
      if (err === undefined) {
        console.info('setUserComment successfully');
      } else {
        console.error('setUserComment failed with error: ' + err);
      }
    });
  } catch (err) {
    console.error('setUserCommentDemoCallback failed with error: ' + err);
  }
}

PhotoViewPicker

图库选择器对象,用来支撑选择图片/视频和等用户场景。在使用前,需要先创建PhotoViewPicker实例。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

示例:

let photoPicker = new photoAccessHelper.PhotoViewPicker();

select

select(option?: PhotoSelectOptions) : Promise&lt;PhotoSelectResult&gt;

通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用promise异步返回形式,传入可选参数PhotoSelectOptions对象,返回PhotoSelectResult对象。

注意:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用photoAccessHelper.getAssets接口去使用,具体使用方式参见用户文件uri介绍中的媒体文件uri的使用方式

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
option PhotoSelectOptions photoPicker选择选项,若无此参数,则默认选择媒体文件类型为图片和视频类型,选择媒体文件数量的最大值为50

返回值:

类型 说明
Promise&lt;PhotoSelectResult&gt; Promise对象。返回photoPicker选择后的结果集

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
async function example01() {
  try {  
    let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
    PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
    PhotoSelectOptions.maxSelectNumber = 5;
    let photoPicker = new photoAccessHelper.PhotoViewPicker();
    photoPicker.select(PhotoSelectOptions).then((PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => {
      console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult));
    }).catch((err: BusinessError) => {
      console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
    });
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
  }
}

select

select(option: PhotoSelectOptions, callback: AsyncCallback&lt;PhotoSelectResult&gt;) : void

通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,传入参数PhotoSelectOptions对象,返回PhotoSelectResult对象。

注意:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用photoAccessHelper.getAssets接口去使用,具体使用方式参见用户文件uri介绍中的媒体文件uri的使用方式

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
option PhotoSelectOptions photoPicker选择选项
callback AsyncCallback&lt;PhotoSelectResult&gt; callback 返回photoPicker选择后的结果集

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
async function example02() {
  try {
    let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
    PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
    PhotoSelectOptions.maxSelectNumber = 5;
    let photoPicker = new photoAccessHelper.PhotoViewPicker();
    photoPicker.select(PhotoSelectOptions, (err: BusinessError, PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => {
      if (err) {
        console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
        return;
      }
      console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult));
    });
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
  }
}

select

select(callback: AsyncCallback&lt;PhotoSelectResult&gt;) : void

通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,返回PhotoSelectResult对象。

注意:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用photoAccessHelper.getAssets接口去使用,具体使用方式参见用户文件uri介绍中的媒体文件uri的使用方式

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
callback AsyncCallback&lt;PhotoSelectResult&gt; callback 返回photoPicker选择后的结果集

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
async function example03() {
  try {
    let photoPicker = new photoAccessHelper.PhotoViewPicker();
    photoPicker.select((err: BusinessError, PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => {
      if (err) {
        console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
        return;
      }
      console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult));
    });
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
  }
}

FetchResult

文件检索结果集。

getCount

getCount(): number

获取文件检索结果中的文件总数。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

返回值:

类型 说明
number 检索到的文件总数。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getCountDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  const fetchCount = fetchResult.getCount();
  console.info('fetchCount = ', fetchCount);
}

isAfterLast

isAfterLast(): boolean

检查结果集是否指向最后一行。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

返回值:

类型 说明
boolean 当读到最后一条记录后,后续没有记录返回true,否则返回false。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  const fetchCount = fetchResult.getCount();
  console.info('count:' + fetchCount);
  let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getLastObject();
  if (fetchResult.isAfterLast()) {
    console.info('photoAsset isAfterLast displayName = ', photoAsset.displayName);
  } else {
    console.info('photoAsset  not isAfterLast ');
  }
}

close

close(): void

释放FetchResult实例并使其失效。无法调用其他方法。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('fetchResultCloseDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  try {
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
    fetchResult.close();
    console.info('close succeed.');
  } catch (err) {
    console.error('close fail. message = ' + err);
  }
}

getFirstObject

getFirstObject(callback: AsyncCallback&lt;T&gt;): void

获取文件检索结果中的第一个文件资产。此方法使用callback形式返回结果。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
callback AsyncCallback&lt;T&gt; 异步获取结果集中的第一个完成后的回调。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getFirstObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  fetchResult.getFirstObject((err, photoAsset) => {
    if (photoAsset != undefined) {
      console.info('photoAsset displayName: ', photoAsset.displayName);
    } else {
      console.error('photoAsset failed with err:' + err);
    }
  });
}

getFirstObject

getFirstObject(): Promise&lt;T&gt;

获取文件检索结果中的第一个文件资产。此方法使用promise方式来异步返回。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

返回值:

类型 说明
Promise&lt;T&gt; Promise对象,返回结果集中第一个对象。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getFirstObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
  console.info('photoAsset displayName: ', photoAsset.displayName);
}

getNextObject

getNextObject(callback: AsyncCallback&lt;T&gt;): void

获取文件检索结果中的下一个文件资产。此方法使用callback形式返回结果。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
callbacke AsyncCallback&lt;T&gt; 异步返回结果集中下一个之后的回调。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getNextObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  await fetchResult.getFirstObject();
  if (fetchResult.isAfterLast()) {
    fetchResult.getNextObject((err, photoAsset) => {
      if (photoAsset != undefined) {
        console.info('photoAsset displayName: ', photoAsset.displayName);
      } else {
        console.error('photoAsset failed with err: ' + err);
      }
    });
  }
}

getNextObject

getNextObject(): Promise&lt;T&gt;

获取文件检索结果中的下一个文件资产。此方法使用promise方式来异步返回。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

返回值:

类型 说明
Promise&lt;T&gt; Promise对象,返回结果集中下一个对象。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getNextObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  await fetchResult.getFirstObject();
  if (fetchResult.isAfterLast()) {
    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getNextObject();
    console.info('photoAsset displayName: ', photoAsset.displayName);
  }
}

getLastObject

getLastObject(callback: AsyncCallback&lt;T&gt;): void

获取文件检索结果中的最后一个文件资产。此方法使用callback回调来返回。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
callback AsyncCallback&lt;T&gt; 异步返回结果集中最后一个的回调。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getLastObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  fetchResult.getLastObject((err, photoAsset) => {
    if (photoAsset != undefined) {
      console.info('photoAsset displayName: ', photoAsset.displayName);
    } else {
      console.error('photoAsset failed with err: ' + err);
    }
  });
}

getLastObject

getLastObject(): Promise&lt;T&gt;

获取文件检索结果中的最后一个文件资产。此方法使用Promise方式来返回。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

返回值:

类型 说明
Promise&lt;T&gt; Promise对象,返回结果集中最后一个对象。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getLastObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getLastObject();
  console.info('photoAsset displayName: ', photoAsset.displayName);
}

getObjectByPosition

getObjectByPosition(index: number, callback: AsyncCallback&lt;T&gt;): void

获取文件检索结果中具有指定索引的文件资产。此方法使用callback来返回。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
index number 要获取的文件的索引,从0开始。
callback AsyncCallback&lt;T&gt; 异步返回指定索引的文件资产的回调。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getObjectByPositionDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  fetchResult.getObjectByPosition(0, (err, photoAsset) => {
    if (photoAsset != undefined) {
      console.info('photoAsset displayName: ', photoAsset.displayName);
    } else {
      console.error('photoAsset failed with err: ' + err);
    }
  });
}

getObjectByPosition

getObjectByPosition(index: number): Promise&lt;T&gt;

获取文件检索结果中具有指定索引的文件资产。此方法使用Promise形式返回文件Asset。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
index number 要获取的文件的索引,从0开始。

返回值:

类型 说明
Promise&lt;T&gt; Promise对象,返回结果集中指定索引的一个对象。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getObjectByPositionDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getObjectByPosition(0);
  console.info('photoAsset displayName: ', photoAsset.displayName);
}

getAllObjects

getAllObjects(callback: AsyncCallback&lt;Array&lt;T&gt;&gt;): void

获取文件检索结果中的所有文件资产。此方法使用callback形式返回结果。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
callback AsyncCallback&lt;Array&lt;T&gt;&gt; 异步获取结果集中的所有文件资产完成后的回调。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getAllObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  fetchResult.getAllObjects((err, photoAssetList) => {
    if (photoAssetList != undefined) {
      console.info('photoAssetList length: ', photoAssetList.length);
    } else {
      console.error('photoAssetList failed with err:' + err);
    }
  });
}

getAllObjects

getAllObjects(): Promise&lt;Array&lt;T&gt;&gt;

获取文件检索结果中的所有文件资产。此方法使用promise方式来异步返回。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

返回值:

类型 说明
Promise&lt;Array&lt;T&gt;&gt; Promise对象,返回结果集中所有文件资产数组。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('getAllObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  let photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects();
  console.info('photoAssetList length: ', photoAssetList.length);
}

Album

实体相册

属性

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 类型 可读 可写 说明
albumType AlbumType 相册类型。
albumSubtype AlbumSubtype 相册子类型。
albumName string 用户相册可写,预置相册不可写 相册名称。
albumUri string 相册Uri。
count number 相册中文件数量。
coverUri string 封面文件Uri。

getAssets

getAssets(options: FetchOptions, callback: AsyncCallback&lt;FetchResult&lt;PhotoAsset&gt;&gt;): void

获取相册中的文件。该方法使用callback形式来返回文件。

需要权限:ohos.permission.READ_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
options FetchOptions 检索选项。
callback AsyncCallback&lt;FetchResult&lt;PhotoAsset&gt;&gt; callback返回图片和视频数据结果集。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('albumGetAssetsDemoCallback');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  const albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, albumFetchOptions);
  const album: photoAccessHelper.Album = await albumList.getFirstObject();
  album.getAssets(fetchOption, (err, albumFetchResult) => {
    if (albumFetchResult != undefined) {
      console.info('album getAssets successfully, getCount: ' + albumFetchResult.getCount());
    } else {
      console.error('album getAssets failed with error: ' + err);
    }
  });
}

getAssets

getAssets(options: FetchOptions): Promise&lt;FetchResult&lt;PhotoAsset&gt;&gt;

获取相册中的文件。该方法使用Promise来返回文件。

需要权限:ohos.permission.READ_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
options FetchOptions 检索选项。

返回值:

类型 说明
Promise&lt;FetchResult&lt;PhotoAsset&gt;&gt; Promise对象,返回图片和视频数据结果集。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  console.info('albumGetAssetsDemoPromise');

  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  const albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, albumFetchOptions);
  const album: photoAccessHelper.Album = await albumList.getFirstObject();
  album.getAssets(fetchOption).then((albumFetchResult) => {
    console.info('album getPhotoAssets successfully, getCount: ' + albumFetchResult.getCount());
  }).catch((err: BusinessError) => {
    console.error('album getPhotoAssets failed with error: ' + err);
  });
}

commitModify

commitModify(callback: AsyncCallback&lt;void&gt;): void

更新相册属性修改到数据库中。该方法使用callback形式来返回结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
callback AsyncCallback&lt;void&gt; callback返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  console.info('albumCommitModifyDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  const albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, albumFetchOptions);
  const album: photoAccessHelper.Album = await albumList.getFirstObject();
  album.albumName = 'hello';
  album.commitModify((err) => {
    if (err != undefined) {
      console.error('commitModify failed with error: ' + err);
    } else {
      console.info('commitModify successfully');
    }
  });
}

commitModify

commitModify(): Promise&lt;void&gt;

更新相册属性修改到数据库中。该方法使用Promise来返回结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

返回值:

类型 说明
Promise&lt;void&gt; Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  console.info('albumCommitModifyDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let albumFetchOptions: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  const albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, albumFetchOptions);
  const album: photoAccessHelper.Album = await albumList.getFirstObject();
  album.albumName = 'hello';
  album.commitModify().then(() => {
    console.info('commitModify successfully');
  }).catch((err: BusinessError) => {
    console.error('commitModify failed with error: ' + err);
  });
}

addAssets

addAssets(assets: Array&lt;PhotoAsset&gt;, callback: AsyncCallback&lt;void&gt;): void

往相册中添加图片或者视频,需要先预置相册和文件资源。该方法使用callback形式来返回结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
assets Array&lt;PhotoAsset&gt; 待添加到相册中的图片或视频数组。
callback AsyncCallback&lt;void&gt; callback返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('addAssetsDemoCallback');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: photoAccessHelper.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    album.addAssets([asset], (err) => {
      if (err === undefined) {
        console.info('album addAssets successfully');
      } else {
        console.error('album addAssets failed with error: ' + err);
      }
    });
  } catch (err) {
    console.error('addAssetsDemoCallback failed with error: ' + err);
  }
}

addAssets

addAssets(assets: Array&lt;PhotoAsset&gt;): Promise&lt;void&gt;

往相册中添加图片或者视频,需要先预置相册和文件资源。该方法使用Promise来返回结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
assets Array&lt;PhotoAsset&gt; 待添加到相册中的图片或视频数组。

返回值:

类型 说明
Promise&lt;void&gt; Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  try {
    console.info('addAssetsDemoPromise');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: photoAccessHelper.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    album.addAssets([asset]).then(() => {
      console.info('album addAssets successfully');
    }).catch((err: BusinessError) => {
      console.error('album addAssets failed with error: ' + err);
    });
  } catch (err) {
    console.error('addAssetsDemoPromise failed with error: ' + err);
  }
}

removeAssets

removeAssets(assets: Array&lt;PhotoAsset&gt;, callback: AsyncCallback&lt;void&gt;): void

从相册中移除图片或者视频,需要先预置相册和文件资源。该方法使用callback形式来返回结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
assets Array&lt;PhotoAsset&gt; 相册中待移除的图片或视频数组。
callback AsyncCallback&lt;void&gt; callback返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('removeAssetsDemoCallback');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: photoAccessHelper.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    album.removeAssets([asset], (err) => {
      if (err === undefined) {
        console.info('album removeAssets successfully');
      } else {
        console.error('album removeAssets failed with error: ' + err);
      }
    });
  } catch (err) {
    console.error('removeAssetsDemoCallback failed with error: ' + err);
  }
}

removeAssets

removeAssets(assets: Array&lt;PhotoAsset&gt;): Promise&lt;void&gt;

从相册中移除图片或者视频,需要先预置相册和文件资源。该方法使用Promise来返回结果。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
assets Array&lt;PhotoAsset&gt; 相册中待移除的图片或视频数组。

返回值:

类型 说明
Promise&lt;void&gt; Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  try {
    console.info('removeAssetsDemoPromise');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: photoAccessHelper.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    album.removeAssets([asset]).then(() => {
      console.info('album removeAssets successfully');
    }).catch((err: BusinessError) => {
      console.error('album removeAssets failed with error: ' + err);
    });
  } catch (err) {
    console.error('removeAssetsDemoPromise failed with error: ' + err);
  }
}

recoverAssets

recoverAssets(assets: Array&lt;PhotoAsset&gt;, callback: AsyncCallback&lt;void&gt;): void

从回收站中恢复图片或者视频,需要先在回收站中预置文件资源。该方法使用callback形式来返回结果。

系统接口:此接口为系统接口。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
assets Array&lt;PhotoAsset&gt; 回收站中待恢复图片或者视频数组。
callback AsyncCallback&lt;void&gt; callback返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('recoverAssetsDemoCallback');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: photoAccessHelper.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH);
    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    album.recoverAssets([asset], (err) => {
      if (err === undefined) {
        console.info('album recoverAssets successfully');
      } else {
        console.error('album recoverAssets failed with error: ' + err);
      }
    });
  } catch (err) {
    console.error('recoverAssetsDemoCallback failed with error: ' + err);
  }
}

recoverAssets

recoverAssets(assets: Array&lt;PhotoAsset&gt;): Promise&lt;void&gt;

从回收站中恢复图片或者视频,需要先在回收站中预置文件资源。该方法使用Promise来返回结果。

系统接口:此接口为系统接口。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
assets Array&lt;PhotoAsset&gt; 回收站中待恢复图片或者视频数组。

返回值:

类型 说明
Promise&lt;void&gt; Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  try {
    console.info('recoverAssetsDemoPromise');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: photoAccessHelper.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH);
    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    album.recoverAssets([asset]).then(() => {
      console.info('album recoverAssets successfully');
    }).catch((err: BusinessError) => {
      console.error('album recoverAssets failed with error: ' + err);
    });
  } catch (err) {
    console.error('recoverAssetsDemoPromise failed with error: ' + err);
  }
}

deleteAssets

deleteAssets(assets: Array&lt;PhotoAsset&gt;, callback: AsyncCallback&lt;void&gt;): void

从回收站中彻底删除图片或者视频,需要先在回收站中预置文件资源。该方法使用callback形式来返回结果。

注意:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。

系统接口:此接口为系统接口。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
assets Array&lt;PhotoAsset&gt; 回收站中待彻底删除图片或者视频数组。
callback AsyncCallback&lt;void&gt; callback返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('deleteAssetsDemoCallback');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: photoAccessHelper.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH);
    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    album.deleteAssets([asset], (err) => {
      if (err === undefined) {
        console.info('album deleteAssets successfully');
      } else {
        console.error('album deleteAssets failed with error: ' + err);
      }
    });
  } catch (err) {
    console.error('deleteAssetsDemoCallback failed with error: ' + err);
  }
}

deleteAssets

deleteAssets(assets: Array&lt;PhotoAsset&gt;): Promise&lt;void&gt;

从回收站中彻底删除图片或者视频,需要先在回收站中预置文件资源。该方法使用Promise来返回结果。

注意:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。

系统接口:此接口为系统接口。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
assets Array&lt;PhotoAsset&gt; 回收站中待彻底删除图片或者视频数组。

返回值:

类型 说明
Promise&lt;void&gt; Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';
import { BusinessError } from '@ohos.base';

async function example() {
  try {
    console.info('deleteAssetsDemoPromise');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: photoAccessHelper.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH);
    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    album.deleteAssets([asset]).then(() => {
      console.info('album deleteAssets successfully');
    }).catch((err: BusinessError) => {
      console.error('album deleteAssets failed with error: ' + err);
    });
  } catch (err) {
    console.error('deleteAssetsDemoPromise failed with error: ' + err);
  }
}

setCoverUri

setCoverUri(uri: string, callback: AsyncCallback&lt;void&gt;): void

设置相册封面,该方法使用callback形式来返回结果。

注意:此接口只可修改用户相册封面,不允许修改系统相册封面。

系统接口:此接口为系统接口。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
uri string 待设置为相册封面文件的uri。
callback AsyncCallback&lt;void&gt; callback返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('setCoverUriDemoCallback');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: photoAccessHelper.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    album.setCoverUri(asset.uri, (err) => {
      if (err === undefined) {
        console.info('album setCoverUri successfully');
      } else {
        console.error('album setCoverUri failed with error: ' + err);
      }
    });
  } catch (err) {
    console.error('setCoverUriDemoCallback failed with error: ' + err);
  }
}

setCoverUri

setCoverUri(uri: string): Promise&lt;void&gt;

设置相册封面,该方法使用Promise来返回结果。

注意:此接口只可修改用户相册封面,不允许修改系统相册封面。

系统接口:此接口为系统接口。

需要权限:ohos.permission.WRITE_IMAGEVIDEO

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

参数:

参数名 类型 必填 说明
uri string 待设置为相册封面文件的uri。

返回值:

类型 说明
Promise&lt;void&gt; Promise对象,返回void。

错误码:

接口抛出错误码的详细介绍请参见通用错误码文件管理错误码

错误码ID 错误信息
202 Called by non-system application.
401 if parameter is invalid.
13900012 Permission denied.
13900020 Invalid argument.
14000011 System inner fail.

示例:

import dataSharePredicates from '@ohos.data.dataSharePredicates';

async function example() {
  try {
    console.info('setCoverUriDemoCallback');
    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
    let fetchOption: photoAccessHelper.FetchOptions = {
      fetchColumns: [],
      predicates: predicates
    };
    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
    album.setCoverUri(asset.uri, (err) => {
      if (err === undefined) {
        console.info('album setCoverUri successfully');
      } else {
        console.error('album setCoverUri failed with error: ' + err);
      }
    });
  } catch (err) {
    console.error('setCoverUriDemoCallback failed with error: ' + err);
  }
}

MemberType

成员类型。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 类型 可读 可写 说明
number number number类型。
string string string类型。
boolean boolean boolean类型。

PhotoType

枚举,媒体文件类型。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 说明
IMAGE 1 图片。
VIDEO 2 视频。

PhotoSubtype

枚举,不同PhotoAsset的类型。

系统接口:此接口为系统接口。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 说明
DEFAULT 0 默认照片类型。
SCREENSHOT 1 截屏录屏文件类型。

PositionType

枚举,文件位置,表示文件在本地或云端。

系统接口:此接口为系统接口。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 说明
LOCAL 1 << 0 文件只存在于本端设备。
CLOUD 1 << 1 文件只存在于云端。

AlbumType

枚举,相册类型,表示是用户相册还是系统预置相册。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 说明
USER 0 用户相册。
SYSTEM 1024 系统预置相册。

AlbumSubtype

枚举,相册子类型,表示具体的相册类型。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 说明
USER_GENERIC 1 用户相册。
FAVORITE 1025 收藏夹。
VIDEO 1026 视频相册。
HIDDEN 1027 隐藏相册。系统接口:此接口为系统接口。
TRASH 1028 回收站。系统接口:此接口为系统接口。
SCREENSHOT 1029 截屏和录屏相册。系统接口:此接口为系统接口。
CAMERA 1030 相机拍摄的照片和视频相册。系统接口:此接口为系统接口。
ANY 2147483647 任意相册。

PhotoKeys

枚举,图片和视频文件关键信息。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 说明
URI ‘uri’ 文件uri。
PHOTO_TYPE ‘media_type’ 媒体文件类型。
DISPLAY_NAME ‘display_name’ 显示名字。
SIZE ‘size’ 文件大小。
DATE_ADDED ‘date_added’ 添加日期(添加文件时间距1970年1月1日的秒数值)。
DATE_MODIFIED ‘date_modified’ 修改日期(修改文件时间距1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新)。
DURATION ‘duration’ 持续时间(单位:毫秒)。
WIDTH ‘width’ 图片宽度(单位:像素)。
HEIGHT ‘height’ 图片高度(单位:像素)。
DATE_TAKEN ‘date_taken’ 拍摄日期(文件拍照时间距1970年1月1日的秒数值)。
ORIENTATION ‘orientation’ 图片文件的方向。
FAVORITE ‘is_favorite’ 收藏。
TITLE ‘title’ 文件标题。
POSITION ‘position’ 文件位置类型。系统接口:此接口为系统接口。
DATE_TRASHED ‘date_trashed’ 删除日期(删除文件时间距1970年1月1日的秒数值)。系统接口:此接口为系统接口。
HIDDEN ‘hidden’ 文件的隐藏状态。系统接口:此接口为系统接口。
CAMERA_SHOT_KEY ‘camera_shot_key’ 锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。系统接口:此接口为系统接口。
USER_COMMENT10+ ‘user_comment’ 用户注释信息。系统接口:此接口为系统接口。
DATE_YEAR11+ ‘date_year’ 创建文件的年份。系统接口:此接口为系统接口。
DATE_MONTH11+ ‘date_month’ 创建文件的月份。系统接口:此接口为系统接口。
DATE_DAY11+ ‘date_day’ 创建文件的日期。系统接口:此接口为系统接口。

AlbumKeys

枚举,相册关键信息。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 说明
URI ‘uri’ 相册uri。
ALBUM_NAME ‘album_name’ 相册名字。

PhotoCreateOptions

图片或视频的创建选项。

系统接口:此接口为系统接口。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 类型 必填 说明
subtype PhotoSubtype 图片或者视频的子类型。
cameraShotKey string 锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。

CreateOptions

图片或视频的创建选项。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 类型 必填 说明
title string 图片或者视频的标题。

FetchOptions

检索条件。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 类型 可读 可写 说明
fetchColumns Array&lt;string&gt; 检索条件,指定列名查询,如果该参数为空时默认查询uri、name、photoType(具体字段名称以检索对象定义为准)且使用get接口去获取当前对象的其他属性时将会报错。示例:
fetchColumns: [‘uri’, ‘title’]。
predicates dataSharePredicates.DataSharePredicates 谓词查询,显示过滤条件。

ChangeData

监听器回调函数的值。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 类型 可读 可写 说明
type NotifyType ChangeData的通知类型。
uris Array&lt;string&gt; 相同NotifyType的所有uri,可以是PhotoAsset或Album。
extraUris Array&lt;string&gt; 相册中变动文件的uri数组。

NotifyType

枚举,通知事件的类型。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 说明
NOTIFY_ADD 0 添加文件集或相册通知的类型。
NOTIFY_UPDATE 1 文件集或相册的更新通知类型。
NOTIFY_REMOVE 2 删除文件集或相册的通知类型。
NOTIFY_ALBUM_ADD_ASSET 3 在相册中添加的文件集的通知类型。
NOTIFY_ALBUM_REMOVE_ASSET 4 在相册中删除的文件集的通知类型。

DefaultChangeUri

枚举,DefaultChangeUri子类型。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 说明
DEFAULT_PHOTO_URI ‘file://media/Photo’ 默认PhotoAsset的Uri,与forSubUri{true}一起使用,将接收所有PhotoAsset的更改通知。
DEFAULT_ALBUM_URI ‘file://media/PhotoAlbum’ 默认相册的Uri,与forSubUri{true}一起使用,将接收所有相册的更改通知。

PhotoViewMIMETypes

枚举,可选择的媒体文件类型。

系统能力: SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 说明
IMAGE_TYPE ‘image/*’ 图片类型。
VIDEO_TYPE ‘video/*’ 视频类型。
IMAGE_VIDEO_TYPE ‘*/*’ 图片和视频类型。

PhotoSelectOptions

图库选择选项。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 类型 必填 说明
MIMEType PhotoViewMIMETypes 可选择的媒体文件类型,若无此参数,则默认为图片和视频类型。
maxSelectNumber number 选择媒体文件数量的最大值(默认值为50,最大值为500)。

PhotoSelectResult

返回图库选择后的结果集。

系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core

名称 类型 可读 可写 说明
photoUris Array&lt;string&gt; 返回图库选择后的媒体文件的uri数组,此uri数组只能通过临时授权的方式调用photoAccessHelper.getAssets接口去使用,具体使用方式参见用户文件uri介绍中的媒体文件uri的使用方式
isOriginalPhoto boolean 返回图库选择后的媒体文件是否为原图。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙接口

harmony 鸿蒙系统公共事件定义(待停用)

harmony 鸿蒙系统公共事件定义

harmony 鸿蒙开发说明

harmony 鸿蒙企业设备管理概述(仅对系统应用开放)

harmony 鸿蒙BundleStatusCallback

harmony 鸿蒙@ohos.bundle.innerBundleManager (innerBundleManager模块)

harmony 鸿蒙@ohos.distributedBundle (分布式包管理)

harmony 鸿蒙@ohos.bundle (Bundle模块)

harmony 鸿蒙@ohos.enterprise.EnterpriseAdminExtensionAbility (企业设备管理扩展能力)

0  赞