1e41f4b71Sopenharmony_ci# @ohos.file.photoAccessHelper (相册管理模块) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci该模块提供相册管理模块能力,包括创建相册以及访问、修改相册中的媒体数据信息等。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明:** 6e41f4b71Sopenharmony_ci> 7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci## 导入模块 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci```ts 12e41f4b71Sopenharmony_ciimport { photoAccessHelper } from '@kit.MediaLibraryKit'; 13e41f4b71Sopenharmony_ci``` 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci## photoAccessHelper.getPhotoAccessHelper 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_cigetPhotoAccessHelper(context: Context): PhotoAccessHelper 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci获取相册管理模块的实例,用于访问和修改相册中的媒体文件。 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci**模型约束**: 此接口仅可在Stage模型下使用。 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci**参数:** 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 30e41f4b71Sopenharmony_ci| ------- | ------- | ---- | -------------------------- | 31e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。 | 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci**返回值:** 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci| 类型 | 说明 | 36e41f4b71Sopenharmony_ci| ----------------------------- | :---- | 37e41f4b71Sopenharmony_ci| [PhotoAccessHelper](#photoaccesshelper) | 相册管理模块的实例。 | 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_ci**错误码:** 40e41f4b71Sopenharmony_ci 41e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 44e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 45e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 46e41f4b71Sopenharmony_ci 47e41f4b71Sopenharmony_ci**示例:** 48e41f4b71Sopenharmony_ci 49e41f4b71Sopenharmony_ci```ts 50e41f4b71Sopenharmony_ci//此处获取的phAccessHelper实例为全局对象,后续使用到phAccessHelper的地方默认为使用此处获取的对象,如未添加此段代码报phAccessHelper未定义的错误请自行添加 51e41f4b71Sopenharmony_cilet context = getContext(this); 52e41f4b71Sopenharmony_cilet phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context); 53e41f4b71Sopenharmony_ci``` 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_ci## PhotoAccessHelper 56e41f4b71Sopenharmony_ci 57e41f4b71Sopenharmony_ci### getAssets 58e41f4b71Sopenharmony_ci 59e41f4b71Sopenharmony_cigetAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<PhotoAsset>>): void 60e41f4b71Sopenharmony_ci 61e41f4b71Sopenharmony_ci获取图片和视频资源,使用callback方式返回结果。 62e41f4b71Sopenharmony_ci 63e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 64e41f4b71Sopenharmony_ci 65e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 66e41f4b71Sopenharmony_ci 67e41f4b71Sopenharmony_ci对于未申请'ohos.permission.READ_IMAGEVIDEO'权限的应用,可以通过picker的方式调用该接口来查询指定uri对应的图片或视频资源,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-photoviewpicker.md#指定uri获取图片或视频资源)。 68e41f4b71Sopenharmony_ci 69e41f4b71Sopenharmony_ci**参数:** 70e41f4b71Sopenharmony_ci 71e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 72e41f4b71Sopenharmony_ci| -------- | ------------------------ | ---- | ------------------------- | 73e41f4b71Sopenharmony_ci| options | [FetchOptions](#fetchoptions) | 是 | 图片和视频检索选项。 | 74e41f4b71Sopenharmony_ci| callback | AsyncCallback<[FetchResult](#fetchresult)<[PhotoAsset](#photoasset)>> | 是 | callback返回图片和视频检索结果集。 | 75e41f4b71Sopenharmony_ci 76e41f4b71Sopenharmony_ci**错误码:** 77e41f4b71Sopenharmony_ci 78e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 79e41f4b71Sopenharmony_ci 80e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 81e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 82e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 83e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 84e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 85e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 86e41f4b71Sopenharmony_ci 87e41f4b71Sopenharmony_ci**示例:** 88e41f4b71Sopenharmony_ci 89e41f4b71Sopenharmony_ci```ts 90e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 91e41f4b71Sopenharmony_ci 92e41f4b71Sopenharmony_ciasync function example() { 93e41f4b71Sopenharmony_ci console.info('getAssets'); 94e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 95e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 96e41f4b71Sopenharmony_ci fetchColumns: [], 97e41f4b71Sopenharmony_ci predicates: predicates 98e41f4b71Sopenharmony_ci }; 99e41f4b71Sopenharmony_ci 100e41f4b71Sopenharmony_ci phAccessHelper.getAssets(fetchOptions, async (err, fetchResult) => { 101e41f4b71Sopenharmony_ci if (fetchResult !== undefined) { 102e41f4b71Sopenharmony_ci console.info('fetchResult success'); 103e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 104e41f4b71Sopenharmony_ci if (photoAsset !== undefined) { 105e41f4b71Sopenharmony_ci console.info('photoAsset.displayName : ' + photoAsset.displayName); 106e41f4b71Sopenharmony_ci } 107e41f4b71Sopenharmony_ci } else { 108e41f4b71Sopenharmony_ci console.error(`fetchResult fail with error: ${err.code}, ${err.message}`); 109e41f4b71Sopenharmony_ci } 110e41f4b71Sopenharmony_ci }); 111e41f4b71Sopenharmony_ci} 112e41f4b71Sopenharmony_ci``` 113e41f4b71Sopenharmony_ci 114e41f4b71Sopenharmony_ci### getAssets 115e41f4b71Sopenharmony_ci 116e41f4b71Sopenharmony_cigetAssets(options: FetchOptions): Promise<FetchResult<PhotoAsset>> 117e41f4b71Sopenharmony_ci 118e41f4b71Sopenharmony_ci获取图片和视频资源,使用Promise方式返回结果。 119e41f4b71Sopenharmony_ci 120e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 121e41f4b71Sopenharmony_ci 122e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 123e41f4b71Sopenharmony_ci 124e41f4b71Sopenharmony_ci对于未申请'ohos.permission.READ_IMAGEVIDEO'权限的应用,可以通过picker的方式调用该接口来查询指定uri对应的图片或视频资源,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-photoviewpicker.md#指定uri获取图片或视频资源)。 125e41f4b71Sopenharmony_ci 126e41f4b71Sopenharmony_ci**参数:** 127e41f4b71Sopenharmony_ci 128e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 129e41f4b71Sopenharmony_ci| ------- | ------------------- | ---- | ---------------- | 130e41f4b71Sopenharmony_ci| options | [FetchOptions](#fetchoptions) | 是 | 图片和视频检索选项。 | 131e41f4b71Sopenharmony_ci 132e41f4b71Sopenharmony_ci**返回值:** 133e41f4b71Sopenharmony_ci 134e41f4b71Sopenharmony_ci| 类型 | 说明 | 135e41f4b71Sopenharmony_ci| --------------------------- | -------------- | 136e41f4b71Sopenharmony_ci| Promise<[FetchResult](#fetchresult)<[PhotoAsset](#photoasset)>> | Promise对象,返回图片和视频数据结果集。 | 137e41f4b71Sopenharmony_ci 138e41f4b71Sopenharmony_ci**错误码:** 139e41f4b71Sopenharmony_ci 140e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 141e41f4b71Sopenharmony_ci 142e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 143e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 144e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 145e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 146e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 147e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 148e41f4b71Sopenharmony_ci 149e41f4b71Sopenharmony_ci**示例:** 150e41f4b71Sopenharmony_ci 151e41f4b71Sopenharmony_ci```ts 152e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 153e41f4b71Sopenharmony_ci 154e41f4b71Sopenharmony_ciasync function example() { 155e41f4b71Sopenharmony_ci console.info('getAssets'); 156e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 157e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 158e41f4b71Sopenharmony_ci fetchColumns: [], 159e41f4b71Sopenharmony_ci predicates: predicates 160e41f4b71Sopenharmony_ci }; 161e41f4b71Sopenharmony_ci try { 162e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 163e41f4b71Sopenharmony_ci if (fetchResult !== undefined) { 164e41f4b71Sopenharmony_ci console.info('fetchResult success'); 165e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 166e41f4b71Sopenharmony_ci if (photoAsset !== undefined) { 167e41f4b71Sopenharmony_ci console.info('photoAsset.displayName :' + photoAsset.displayName); 168e41f4b71Sopenharmony_ci } 169e41f4b71Sopenharmony_ci } 170e41f4b71Sopenharmony_ci } catch (err) { 171e41f4b71Sopenharmony_ci console.error(`getAssets failed, error: ${err.code}, ${err.message}`); 172e41f4b71Sopenharmony_ci } 173e41f4b71Sopenharmony_ci} 174e41f4b71Sopenharmony_ci``` 175e41f4b71Sopenharmony_ci 176e41f4b71Sopenharmony_ci### getBurstAssets<sup>12+</sup> 177e41f4b71Sopenharmony_ci 178e41f4b71Sopenharmony_cigetBurstAssets(burstKey: string, options: FetchOptions): Promise<FetchResult<PhotoAsset>> 179e41f4b71Sopenharmony_ci 180e41f4b71Sopenharmony_ci获取连拍照片资源,使用Promise方式返回结果。 181e41f4b71Sopenharmony_ci 182e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 183e41f4b71Sopenharmony_ci 184e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 185e41f4b71Sopenharmony_ci 186e41f4b71Sopenharmony_ci**参数:** 187e41f4b71Sopenharmony_ci 188e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 189e41f4b71Sopenharmony_ci| ------- | ------------------- | ---- | ---------------- | 190e41f4b71Sopenharmony_ci| burstKey | string | 是 | 一组连拍照片的唯一标识:uuid(可传入[PhotoKeys](#photokeys)的BURST_KEY) | 191e41f4b71Sopenharmony_ci| options | [FetchOptions](#fetchoptions) | 是 | 连拍照片检索选项。 | 192e41f4b71Sopenharmony_ci 193e41f4b71Sopenharmony_ci**返回值:** 194e41f4b71Sopenharmony_ci 195e41f4b71Sopenharmony_ci| 类型 | 说明 | 196e41f4b71Sopenharmony_ci| --------------------------- | -------------- | 197e41f4b71Sopenharmony_ci| Promise<[FetchResult](#fetchresult)<[PhotoAsset](#photoasset)>> | Promise对象,返回连拍照片数据结果集。 | 198e41f4b71Sopenharmony_ci 199e41f4b71Sopenharmony_ci**错误码:** 200e41f4b71Sopenharmony_ci 201e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 202e41f4b71Sopenharmony_ci 203e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 204e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 205e41f4b71Sopenharmony_ci| 201 | Permission denied. | 206e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 207e41f4b71Sopenharmony_ci| 14000011 | Internal system error. | 208e41f4b71Sopenharmony_ci 209e41f4b71Sopenharmony_ci**示例:** 210e41f4b71Sopenharmony_ci 211e41f4b71Sopenharmony_ci```ts 212e41f4b71Sopenharmony_ciimport { photoAccessHelper } form '@kit.MediaLibraryKit'; 213e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 214e41f4b71Sopenharmony_ci 215e41f4b71Sopenharmony_ciasync function example() { 216e41f4b71Sopenharmony_ci console.info('getBurstAssets'); 217e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 218e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 219e41f4b71Sopenharmony_ci fetchColumns: [], 220e41f4b71Sopenharmony_ci predicates: predicates 221e41f4b71Sopenharmony_ci }; 222e41f4b71Sopenharmony_ci // burstKey为36位的uuid,可以根据photoAccessHelper.PhotoKeys获取。 223e41f4b71Sopenharmony_ci let burstKey: string = "e719d696-09fa-44f8-ec3f215aa62a"; 224e41f4b71Sopenharmony_ci try { 225e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await 226e41f4b71Sopenharmony_ci phAccessHelper.getBurstAssets(burstKey, fetchOptions); 227e41f4b71Sopenharmony_ci if (fetchResult !== undefined) { 228e41f4b71Sopenharmony_ci console.info('fetchResult success'); 229e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 230e41f4b71Sopenharmony_ci if (photoAsset !== undefined) { 231e41f4b71Sopenharmony_ci console.info('photoAsset.displayName :' + photoAsset.displayName); 232e41f4b71Sopenharmony_ci } 233e41f4b71Sopenharmony_ci } 234e41f4b71Sopenharmony_ci } catch (err) { 235e41f4b71Sopenharmony_ci console.error(`getBurstAssets failed, error: ${err.code}, ${err.message}`); 236e41f4b71Sopenharmony_ci } 237e41f4b71Sopenharmony_ci} 238e41f4b71Sopenharmony_ci``` 239e41f4b71Sopenharmony_ci 240e41f4b71Sopenharmony_ci### createAsset 241e41f4b71Sopenharmony_ci 242e41f4b71Sopenharmony_cicreateAsset(photoType: PhotoType, extension: string, options: CreateOptions, callback: AsyncCallback<string>): void 243e41f4b71Sopenharmony_ci 244e41f4b71Sopenharmony_ci指定待创建的文件类型、后缀和创建选项,创建图片或视频资源,使用callback方式返回结果。 245e41f4b71Sopenharmony_ci 246e41f4b71Sopenharmony_ci此接口在未申请相册管理模块权限'ohos.permission.WRITE_IMAGEVIDEO'时,可以使用安全控件创建媒体资源,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-savebutton.md)。 247e41f4b71Sopenharmony_ci 248e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 249e41f4b71Sopenharmony_ci 250e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 251e41f4b71Sopenharmony_ci 252e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 253e41f4b71Sopenharmony_ci 254e41f4b71Sopenharmony_ci**参数:** 255e41f4b71Sopenharmony_ci 256e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 257e41f4b71Sopenharmony_ci| -------- | ------------------------ | ---- | ------------------------- | 258e41f4b71Sopenharmony_ci| photoType | [PhotoType](#phototype) | 是 | 创建的文件类型,IMAGE或者VIDEO类型。 | 259e41f4b71Sopenharmony_ci| extension | string | 是 | 文件名后缀参数,例如:'jpg'。 | 260e41f4b71Sopenharmony_ci| options | [CreateOptions](#createoptions) | 是 | 创建选项,例如{title: 'testPhoto'}。 | 261e41f4b71Sopenharmony_ci| callback | AsyncCallback<string> | 是 | callback返回创建的图片和视频的uri。 | 262e41f4b71Sopenharmony_ci 263e41f4b71Sopenharmony_ci**错误码:** 264e41f4b71Sopenharmony_ci 265e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 266e41f4b71Sopenharmony_ci 267e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 268e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 269e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 270e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 271e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 272e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 273e41f4b71Sopenharmony_ci 274e41f4b71Sopenharmony_ci**示例:** 275e41f4b71Sopenharmony_ci 276e41f4b71Sopenharmony_ci```ts 277e41f4b71Sopenharmony_ciasync function example() { 278e41f4b71Sopenharmony_ci console.info('createAssetDemo'); 279e41f4b71Sopenharmony_ci let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE; 280e41f4b71Sopenharmony_ci let extension:string = 'jpg'; 281e41f4b71Sopenharmony_ci let options: photoAccessHelper.CreateOptions = { 282e41f4b71Sopenharmony_ci title: 'testPhoto' 283e41f4b71Sopenharmony_ci } 284e41f4b71Sopenharmony_ci phAccessHelper.createAsset(photoType, extension, options, (err, uri) => { 285e41f4b71Sopenharmony_ci if (uri !== undefined) { 286e41f4b71Sopenharmony_ci console.info('createAsset uri' + uri); 287e41f4b71Sopenharmony_ci console.info('createAsset successfully'); 288e41f4b71Sopenharmony_ci } else { 289e41f4b71Sopenharmony_ci console.error(`createAsset failed, error: ${err.code}, ${err.message}`); 290e41f4b71Sopenharmony_ci } 291e41f4b71Sopenharmony_ci }); 292e41f4b71Sopenharmony_ci} 293e41f4b71Sopenharmony_ci``` 294e41f4b71Sopenharmony_ci 295e41f4b71Sopenharmony_ci### createAsset 296e41f4b71Sopenharmony_ci 297e41f4b71Sopenharmony_cicreateAsset(photoType: PhotoType, extension: string, callback: AsyncCallback<string>): void 298e41f4b71Sopenharmony_ci 299e41f4b71Sopenharmony_ci指定待创建的文件类型和后缀,创建图片或视频资源,使用callback方式返回结果。 300e41f4b71Sopenharmony_ci 301e41f4b71Sopenharmony_ci此接口在未申请相册管理模块权限'ohos.permission.WRITE_IMAGEVIDEO'时,可以使用安全控件创建媒体资源,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-savebutton.md)。 302e41f4b71Sopenharmony_ci 303e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 304e41f4b71Sopenharmony_ci 305e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 306e41f4b71Sopenharmony_ci 307e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 308e41f4b71Sopenharmony_ci 309e41f4b71Sopenharmony_ci**参数:** 310e41f4b71Sopenharmony_ci 311e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 312e41f4b71Sopenharmony_ci| -------- | ------------------------ | ---- | ------------------------- | 313e41f4b71Sopenharmony_ci| photoType | [PhotoType](#phototype) | 是 | 创建的文件类型,IMAGE或者VIDEO类型。 | 314e41f4b71Sopenharmony_ci| extension | string | 是 | 文件名后缀参数,例如:'jpg'。 | 315e41f4b71Sopenharmony_ci| callback | AsyncCallback<string> | 是 | callback返回创建的图片和视频的uri。 | 316e41f4b71Sopenharmony_ci 317e41f4b71Sopenharmony_ci**错误码:** 318e41f4b71Sopenharmony_ci 319e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 320e41f4b71Sopenharmony_ci 321e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 322e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 323e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 324e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 325e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 326e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 327e41f4b71Sopenharmony_ci 328e41f4b71Sopenharmony_ci**示例:** 329e41f4b71Sopenharmony_ci 330e41f4b71Sopenharmony_ci```ts 331e41f4b71Sopenharmony_ciasync function example() { 332e41f4b71Sopenharmony_ci console.info('createAssetDemo'); 333e41f4b71Sopenharmony_ci let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE; 334e41f4b71Sopenharmony_ci let extension: string = 'jpg'; 335e41f4b71Sopenharmony_ci phAccessHelper.createAsset(photoType, extension, (err, uri) => { 336e41f4b71Sopenharmony_ci if (uri !== undefined) { 337e41f4b71Sopenharmony_ci console.info('createAsset uri' + uri); 338e41f4b71Sopenharmony_ci console.info('createAsset successfully'); 339e41f4b71Sopenharmony_ci } else { 340e41f4b71Sopenharmony_ci console.error(`createAsset failed, error: ${err.code}, ${err.message}`); 341e41f4b71Sopenharmony_ci } 342e41f4b71Sopenharmony_ci }); 343e41f4b71Sopenharmony_ci} 344e41f4b71Sopenharmony_ci``` 345e41f4b71Sopenharmony_ci 346e41f4b71Sopenharmony_ci### createAsset 347e41f4b71Sopenharmony_ci 348e41f4b71Sopenharmony_cicreateAsset(photoType: PhotoType, extension: string, options?: CreateOptions): Promise<string> 349e41f4b71Sopenharmony_ci 350e41f4b71Sopenharmony_ci指定待创建的文件类型、后缀和创建选项,创建图片或视频资源,使用Promise方式返回结果。 351e41f4b71Sopenharmony_ci 352e41f4b71Sopenharmony_ci此接口在未申请相册管理模块权限'ohos.permission.WRITE_IMAGEVIDEO'时,可以使用安全控件创建媒体资源,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-savebutton.md)。 353e41f4b71Sopenharmony_ci 354e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 355e41f4b71Sopenharmony_ci 356e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 357e41f4b71Sopenharmony_ci 358e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 359e41f4b71Sopenharmony_ci 360e41f4b71Sopenharmony_ci**参数:** 361e41f4b71Sopenharmony_ci 362e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 363e41f4b71Sopenharmony_ci| -------- | ------------------------ | ---- | ------------------------- | 364e41f4b71Sopenharmony_ci| photoType | [PhotoType](#phototype) | 是 | 创建的文件类型,IMAGE或者VIDEO类型。 | 365e41f4b71Sopenharmony_ci| extension | string | 是 | 文件名后缀参数,例如:'jpg'。 | 366e41f4b71Sopenharmony_ci| options | [CreateOptions](#createoptions) | 否 | 创建选项,例如{title: 'testPhoto'}。 | 367e41f4b71Sopenharmony_ci 368e41f4b71Sopenharmony_ci**返回值:** 369e41f4b71Sopenharmony_ci 370e41f4b71Sopenharmony_ci| 类型 | 说明 | 371e41f4b71Sopenharmony_ci| --------------------------- | -------------- | 372e41f4b71Sopenharmony_ci| Promise<string> | Promise对象,返回创建的图片和视频的uri。 | 373e41f4b71Sopenharmony_ci 374e41f4b71Sopenharmony_ci**错误码:** 375e41f4b71Sopenharmony_ci 376e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 377e41f4b71Sopenharmony_ci 378e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 379e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 380e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 381e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 382e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 383e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 384e41f4b71Sopenharmony_ci 385e41f4b71Sopenharmony_ci**示例:** 386e41f4b71Sopenharmony_ci 387e41f4b71Sopenharmony_ci```ts 388e41f4b71Sopenharmony_ciasync function example() { 389e41f4b71Sopenharmony_ci console.info('createAssetDemo'); 390e41f4b71Sopenharmony_ci try { 391e41f4b71Sopenharmony_ci let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE; 392e41f4b71Sopenharmony_ci let extension: string = 'jpg'; 393e41f4b71Sopenharmony_ci let options: photoAccessHelper.CreateOptions = { 394e41f4b71Sopenharmony_ci title: 'testPhoto' 395e41f4b71Sopenharmony_ci } 396e41f4b71Sopenharmony_ci let uri: string = await phAccessHelper.createAsset(photoType, extension, options); 397e41f4b71Sopenharmony_ci console.info('createAsset uri' + uri); 398e41f4b71Sopenharmony_ci console.info('createAsset successfully'); 399e41f4b71Sopenharmony_ci } catch (err) { 400e41f4b71Sopenharmony_ci console.error(`createAsset failed, error: ${err.code}, ${err.message}`); 401e41f4b71Sopenharmony_ci } 402e41f4b71Sopenharmony_ci} 403e41f4b71Sopenharmony_ci``` 404e41f4b71Sopenharmony_ci 405e41f4b71Sopenharmony_ci### getAlbums 406e41f4b71Sopenharmony_ci 407e41f4b71Sopenharmony_cigetAlbums(type: AlbumType, subtype: AlbumSubtype, options: FetchOptions, callback: AsyncCallback<FetchResult<Album>>): void 408e41f4b71Sopenharmony_ci 409e41f4b71Sopenharmony_ci根据检索选项和相册类型获取相册,使用callback方式返回结果。 410e41f4b71Sopenharmony_ci 411e41f4b71Sopenharmony_ci获取相册前需先保证相册存在。 412e41f4b71Sopenharmony_ci 413e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 414e41f4b71Sopenharmony_ci 415e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 416e41f4b71Sopenharmony_ci 417e41f4b71Sopenharmony_ci**参数:** 418e41f4b71Sopenharmony_ci 419e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 420e41f4b71Sopenharmony_ci| -------- | ------------------------ | ---- | ------------------------- | 421e41f4b71Sopenharmony_ci| type | [AlbumType](#albumtype) | 是 | 相册类型。 | 422e41f4b71Sopenharmony_ci| subtype | [AlbumSubtype](#albumsubtype) | 是 | 相册子类型。 | 423e41f4b71Sopenharmony_ci| options | [FetchOptions](#fetchoptions) | 是 | 检索选项。 | 424e41f4b71Sopenharmony_ci| callback | AsyncCallback<[FetchResult](#fetchresult)<[Album](#album)>> | 是 | callback返回获取相册的结果集。 | 425e41f4b71Sopenharmony_ci 426e41f4b71Sopenharmony_ci**错误码:** 427e41f4b71Sopenharmony_ci 428e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 429e41f4b71Sopenharmony_ci 430e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 431e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 432e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 433e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 434e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 435e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 436e41f4b71Sopenharmony_ci 437e41f4b71Sopenharmony_ci**示例:** 438e41f4b71Sopenharmony_ci 439e41f4b71Sopenharmony_ci```ts 440e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 441e41f4b71Sopenharmony_ci 442e41f4b71Sopenharmony_ciasync function example() { 443e41f4b71Sopenharmony_ci // 示例代码中为获取相册名为newAlbumName的相册。 444e41f4b71Sopenharmony_ci console.info('getAlbumsDemo'); 445e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 446e41f4b71Sopenharmony_ci predicates.equalTo('album_name', 'newAlbumName'); 447e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 448e41f4b71Sopenharmony_ci fetchColumns: [], 449e41f4b71Sopenharmony_ci predicates: predicates 450e41f4b71Sopenharmony_ci }; 451e41f4b71Sopenharmony_ci phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions, async (err, fetchResult) => { 452e41f4b71Sopenharmony_ci if (err) { 453e41f4b71Sopenharmony_ci console.error(`getAlbumsCallback failed with err: ${err.code}, ${err.message}`); 454e41f4b71Sopenharmony_ci return; 455e41f4b71Sopenharmony_ci } 456e41f4b71Sopenharmony_ci if (fetchResult === undefined) { 457e41f4b71Sopenharmony_ci console.error('getAlbumsCallback fetchResult is undefined'); 458e41f4b71Sopenharmony_ci return; 459e41f4b71Sopenharmony_ci } 460e41f4b71Sopenharmony_ci let album = await fetchResult.getFirstObject(); 461e41f4b71Sopenharmony_ci console.info('getAlbumsCallback successfully, albumName: ' + album.albumName); 462e41f4b71Sopenharmony_ci fetchResult.close(); 463e41f4b71Sopenharmony_ci }); 464e41f4b71Sopenharmony_ci} 465e41f4b71Sopenharmony_ci``` 466e41f4b71Sopenharmony_ci 467e41f4b71Sopenharmony_ci### getAlbums 468e41f4b71Sopenharmony_ci 469e41f4b71Sopenharmony_cigetAlbums(type: AlbumType, subtype: AlbumSubtype, callback: AsyncCallback<FetchResult<Album>>): void 470e41f4b71Sopenharmony_ci 471e41f4b71Sopenharmony_ci根据相册类型获取相册,使用callback方式返回结果。 472e41f4b71Sopenharmony_ci 473e41f4b71Sopenharmony_ci获取相册前需先保证相册存在。 474e41f4b71Sopenharmony_ci 475e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 476e41f4b71Sopenharmony_ci 477e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 478e41f4b71Sopenharmony_ci 479e41f4b71Sopenharmony_ci**参数:** 480e41f4b71Sopenharmony_ci 481e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 482e41f4b71Sopenharmony_ci| -------- | ------------------------ | ---- | ------------------------- | 483e41f4b71Sopenharmony_ci| type | [AlbumType](#albumtype) | 是 | 相册类型。 | 484e41f4b71Sopenharmony_ci| subtype | [AlbumSubtype](#albumsubtype) | 是 | 相册子类型。 | 485e41f4b71Sopenharmony_ci| callback | AsyncCallback<[FetchResult](#fetchresult)<[Album](#album)>> | 是 | callback返回获取相册的结果集。 | 486e41f4b71Sopenharmony_ci 487e41f4b71Sopenharmony_ci**错误码:** 488e41f4b71Sopenharmony_ci 489e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 490e41f4b71Sopenharmony_ci 491e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 492e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 493e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 494e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 495e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 496e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 497e41f4b71Sopenharmony_ci 498e41f4b71Sopenharmony_ci**示例:** 499e41f4b71Sopenharmony_ci 500e41f4b71Sopenharmony_ci```ts 501e41f4b71Sopenharmony_ciasync function example() { 502e41f4b71Sopenharmony_ci // 示例代码中为获取统相册VIDEO,默认已预置。 503e41f4b71Sopenharmony_ci console.info('getAlbumsDemo'); 504e41f4b71Sopenharmony_ci phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.VIDEO, async (err, fetchResult) => { 505e41f4b71Sopenharmony_ci if (err) { 506e41f4b71Sopenharmony_ci console.error(`getAlbumsCallback failed with err: ${err.code}, ${err.message}`); 507e41f4b71Sopenharmony_ci return; 508e41f4b71Sopenharmony_ci } 509e41f4b71Sopenharmony_ci if (fetchResult === undefined) { 510e41f4b71Sopenharmony_ci console.error('getAlbumsCallback fetchResult is undefined'); 511e41f4b71Sopenharmony_ci return; 512e41f4b71Sopenharmony_ci } 513e41f4b71Sopenharmony_ci let album: photoAccessHelper.Album = await fetchResult.getFirstObject(); 514e41f4b71Sopenharmony_ci console.info('getAlbumsCallback successfully, albumUri: ' + album.albumUri); 515e41f4b71Sopenharmony_ci fetchResult.close(); 516e41f4b71Sopenharmony_ci }); 517e41f4b71Sopenharmony_ci} 518e41f4b71Sopenharmony_ci``` 519e41f4b71Sopenharmony_ci 520e41f4b71Sopenharmony_ci### getAlbums 521e41f4b71Sopenharmony_ci 522e41f4b71Sopenharmony_cigetAlbums(type: AlbumType, subtype: AlbumSubtype, options?: FetchOptions): Promise<FetchResult<Album>> 523e41f4b71Sopenharmony_ci 524e41f4b71Sopenharmony_ci根据检索选项和相册类型获取相册,使用Promise方式返回结果。 525e41f4b71Sopenharmony_ci 526e41f4b71Sopenharmony_ci获取相册前需先保证相册存在。 527e41f4b71Sopenharmony_ci 528e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 529e41f4b71Sopenharmony_ci 530e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 531e41f4b71Sopenharmony_ci 532e41f4b71Sopenharmony_ci**参数:** 533e41f4b71Sopenharmony_ci 534e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 535e41f4b71Sopenharmony_ci| -------- | ------------------------ | ---- | ------------------------- | 536e41f4b71Sopenharmony_ci| type | [AlbumType](#albumtype) | 是 | 相册类型。 | 537e41f4b71Sopenharmony_ci| subtype | [AlbumSubtype](#albumsubtype) | 是 | 相册子类型。 | 538e41f4b71Sopenharmony_ci| options | [FetchOptions](#fetchoptions) | 否 | 检索选项,不填时默认根据相册类型检索。 | 539e41f4b71Sopenharmony_ci 540e41f4b71Sopenharmony_ci**返回值:** 541e41f4b71Sopenharmony_ci 542e41f4b71Sopenharmony_ci| 类型 | 说明 | 543e41f4b71Sopenharmony_ci| --------------------------- | -------------- | 544e41f4b71Sopenharmony_ci| Promise<[FetchResult](#fetchresult)<[Album](#album)>> | Promise对象,返回获取相册的结果集。 | 545e41f4b71Sopenharmony_ci 546e41f4b71Sopenharmony_ci**错误码:** 547e41f4b71Sopenharmony_ci 548e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 549e41f4b71Sopenharmony_ci 550e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 551e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 552e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 553e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 554e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 555e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 556e41f4b71Sopenharmony_ci 557e41f4b71Sopenharmony_ci**示例:** 558e41f4b71Sopenharmony_ci 559e41f4b71Sopenharmony_ci```ts 560e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 561e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 562e41f4b71Sopenharmony_ci 563e41f4b71Sopenharmony_ciasync function example() { 564e41f4b71Sopenharmony_ci // 示例代码中为获取相册名为newAlbumName的相册。 565e41f4b71Sopenharmony_ci console.info('getAlbumsDemo'); 566e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 567e41f4b71Sopenharmony_ci predicates.equalTo('album_name', 'newAlbumName'); 568e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 569e41f4b71Sopenharmony_ci fetchColumns: [], 570e41f4b71Sopenharmony_ci predicates: predicates 571e41f4b71Sopenharmony_ci }; 572e41f4b71Sopenharmony_ci phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions).then( async (fetchResult) => { 573e41f4b71Sopenharmony_ci if (fetchResult === undefined) { 574e41f4b71Sopenharmony_ci console.error('getAlbumsPromise fetchResult is undefined'); 575e41f4b71Sopenharmony_ci return; 576e41f4b71Sopenharmony_ci } 577e41f4b71Sopenharmony_ci let album: photoAccessHelper.Album = await fetchResult.getFirstObject(); 578e41f4b71Sopenharmony_ci console.info('getAlbumsPromise successfully, albumName: ' + album.albumName); 579e41f4b71Sopenharmony_ci fetchResult.close(); 580e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 581e41f4b71Sopenharmony_ci console.error(`getAlbumsPromise failed with err: ${err.code}, ${err.message}`); 582e41f4b71Sopenharmony_ci }); 583e41f4b71Sopenharmony_ci} 584e41f4b71Sopenharmony_ci``` 585e41f4b71Sopenharmony_ci 586e41f4b71Sopenharmony_ci### registerChange 587e41f4b71Sopenharmony_ci 588e41f4b71Sopenharmony_ciregisterChange(uri: string, forChildUris: boolean, callback: Callback<ChangeData>) : void 589e41f4b71Sopenharmony_ci 590e41f4b71Sopenharmony_ci注册对指定uri的监听,使用callback方式返回异步结果。 591e41f4b71Sopenharmony_ci 592e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 593e41f4b71Sopenharmony_ci 594e41f4b71Sopenharmony_ci**参数:** 595e41f4b71Sopenharmony_ci 596e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 597e41f4b71Sopenharmony_ci| --------- | ------------------------------------------- | ---- | ------------------------------------------------------------ | 598e41f4b71Sopenharmony_ci| uri | string | 是 | PhotoAsset的uri, Album的uri或[DefaultChangeUri](#defaultchangeuri)的值。 | 599e41f4b71Sopenharmony_ci| forChildUris | boolean | 是 | 是否模糊监听,uri为相册uri时,forChildUris为true能监听到相册中文件的变化,如果是false只能监听相册本身变化。uri为photoAsset时,forChildUris为true、false没有区别,uri为DefaultChangeUri时,forChildUris必须为true,如果为false将找不到该uri,收不到任何消息。 | 600e41f4b71Sopenharmony_ci| callback | Callback<[ChangeData](#changedata)> | 是 | 返回要监听的[ChangeData](#changedata)。注:uri可以注册多个不同的callback监听,[unRegisterChange](#unregisterchange)可以关闭该uri所有监听,也可以关闭指定callback的监听。 | 601e41f4b71Sopenharmony_ci 602e41f4b71Sopenharmony_ci**错误码:** 603e41f4b71Sopenharmony_ci 604e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 605e41f4b71Sopenharmony_ci 606e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 607e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 608e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 609e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 610e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 611e41f4b71Sopenharmony_ci 612e41f4b71Sopenharmony_ci**示例:** 613e41f4b71Sopenharmony_ci 614e41f4b71Sopenharmony_ci```ts 615e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 616e41f4b71Sopenharmony_ci 617e41f4b71Sopenharmony_ciasync function example() { 618e41f4b71Sopenharmony_ci console.info('registerChangeDemo'); 619e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 620e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 621e41f4b71Sopenharmony_ci fetchColumns: [], 622e41f4b71Sopenharmony_ci predicates: predicates 623e41f4b71Sopenharmony_ci }; 624e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 625e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 626e41f4b71Sopenharmony_ci if (photoAsset !== undefined) { 627e41f4b71Sopenharmony_ci console.info('photoAsset.displayName : ' + photoAsset.displayName); 628e41f4b71Sopenharmony_ci } 629e41f4b71Sopenharmony_ci let onCallback1 = (changeData: photoAccessHelper.ChangeData) => { 630e41f4b71Sopenharmony_ci console.info('onCallback1 success, changData: ' + JSON.stringify(changeData)); 631e41f4b71Sopenharmony_ci //file had changed, do something 632e41f4b71Sopenharmony_ci } 633e41f4b71Sopenharmony_ci let onCallback2 = (changeData: photoAccessHelper.ChangeData) => { 634e41f4b71Sopenharmony_ci console.info('onCallback2 success, changData: ' + JSON.stringify(changeData)); 635e41f4b71Sopenharmony_ci //file had changed, do something 636e41f4b71Sopenharmony_ci } 637e41f4b71Sopenharmony_ci // 注册onCallback1监听 638e41f4b71Sopenharmony_ci phAccessHelper.registerChange(photoAsset.uri, false, onCallback1); 639e41f4b71Sopenharmony_ci // 注册onCallback2监听 640e41f4b71Sopenharmony_ci phAccessHelper.registerChange(photoAsset.uri, false, onCallback2); 641e41f4b71Sopenharmony_ci 642e41f4b71Sopenharmony_ci await photoAccessHelper.MediaAssetChangeRequest.deleteAssets(context, [photoAsset]); 643e41f4b71Sopenharmony_ci} 644e41f4b71Sopenharmony_ci``` 645e41f4b71Sopenharmony_ci 646e41f4b71Sopenharmony_ci### unRegisterChange 647e41f4b71Sopenharmony_ci 648e41f4b71Sopenharmony_ciunRegisterChange(uri: string, callback?: Callback<ChangeData>): void 649e41f4b71Sopenharmony_ci 650e41f4b71Sopenharmony_ci取消指定uri的监听,一个uri可以注册多个监听,存在多个callback监听时,可以取消指定注册的callback的监听;不指定callback时取消该uri的所有监听。 651e41f4b71Sopenharmony_ci 652e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 653e41f4b71Sopenharmony_ci 654e41f4b71Sopenharmony_ci**参数:** 655e41f4b71Sopenharmony_ci 656e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 657e41f4b71Sopenharmony_ci| -------- | ------------------------------------------- | ---- | ------------------------------------------------------------ | 658e41f4b71Sopenharmony_ci| uri | string | 是 | PhotoAsset的uri, Album的uri或[DefaultChangeUri](#defaultchangeuri)的值。 | 659e41f4b71Sopenharmony_ci| callback | Callback<[ChangeData](#changedata)> | 否 | 取消[registerChange](#registerchange)注册时的callback的监听,不填时,取消该uri的所有监听。注:off指定注册的callback后不会进入此回调。 | 660e41f4b71Sopenharmony_ci 661e41f4b71Sopenharmony_ci**错误码:** 662e41f4b71Sopenharmony_ci 663e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 664e41f4b71Sopenharmony_ci 665e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 666e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 667e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 668e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 669e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 670e41f4b71Sopenharmony_ci 671e41f4b71Sopenharmony_ci**示例:** 672e41f4b71Sopenharmony_ci 673e41f4b71Sopenharmony_ci```ts 674e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 675e41f4b71Sopenharmony_ci 676e41f4b71Sopenharmony_ciasync function example() { 677e41f4b71Sopenharmony_ci console.info('offDemo'); 678e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 679e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 680e41f4b71Sopenharmony_ci fetchColumns: [], 681e41f4b71Sopenharmony_ci predicates: predicates 682e41f4b71Sopenharmony_ci }; 683e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 684e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 685e41f4b71Sopenharmony_ci if (photoAsset !== undefined) { 686e41f4b71Sopenharmony_ci console.info('photoAsset.displayName : ' + photoAsset.displayName); 687e41f4b71Sopenharmony_ci } 688e41f4b71Sopenharmony_ci let onCallback1 = (changeData: photoAccessHelper.ChangeData) => { 689e41f4b71Sopenharmony_ci console.info('onCallback1 on'); 690e41f4b71Sopenharmony_ci } 691e41f4b71Sopenharmony_ci let onCallback2 = (changeData: photoAccessHelper.ChangeData) => { 692e41f4b71Sopenharmony_ci console.info('onCallback2 on'); 693e41f4b71Sopenharmony_ci } 694e41f4b71Sopenharmony_ci // 注册onCallback1监听 695e41f4b71Sopenharmony_ci phAccessHelper.registerChange(photoAsset.uri, false, onCallback1); 696e41f4b71Sopenharmony_ci // 注册onCallback2监听 697e41f4b71Sopenharmony_ci phAccessHelper.registerChange(photoAsset.uri, false, onCallback2); 698e41f4b71Sopenharmony_ci // 关闭onCallback1监听,onCallback2 继续监听 699e41f4b71Sopenharmony_ci phAccessHelper.unRegisterChange(photoAsset.uri, onCallback1); 700e41f4b71Sopenharmony_ci await photoAccessHelper.MediaAssetChangeRequest.deleteAssets(context, [photoAsset]); 701e41f4b71Sopenharmony_ci} 702e41f4b71Sopenharmony_ci``` 703e41f4b71Sopenharmony_ci 704e41f4b71Sopenharmony_ci### createDeleteRequest<sup>(deprecated)</sup> 705e41f4b71Sopenharmony_ci 706e41f4b71Sopenharmony_cicreateDeleteRequest(uriList: Array<string>, callback: AsyncCallback<void>): void 707e41f4b71Sopenharmony_ci 708e41f4b71Sopenharmony_ci创建一个弹出框来删除照片,删除的文件进入到回收站,使用callback方式返回结果。 709e41f4b71Sopenharmony_ci 710e41f4b71Sopenharmony_ci> **说明:** 711e41f4b71Sopenharmony_ci> 712e41f4b71Sopenharmony_ci> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.deleteAssets](#deleteassets11-1)替代。 713e41f4b71Sopenharmony_ci 714e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 715e41f4b71Sopenharmony_ci 716e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 717e41f4b71Sopenharmony_ci 718e41f4b71Sopenharmony_ci**参数:** 719e41f4b71Sopenharmony_ci 720e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 721e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------- | 722e41f4b71Sopenharmony_ci| uriList | Array<string> | 是 | 待删除的媒体文件uri数组,最大删除数量300。 | 723e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | callback返回void。 | 724e41f4b71Sopenharmony_ci 725e41f4b71Sopenharmony_ci**错误码:** 726e41f4b71Sopenharmony_ci 727e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 728e41f4b71Sopenharmony_ci 729e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 730e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 731e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 732e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 733e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 734e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 735e41f4b71Sopenharmony_ci 736e41f4b71Sopenharmony_ci**示例:** 737e41f4b71Sopenharmony_ci 738e41f4b71Sopenharmony_ci```ts 739e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 740e41f4b71Sopenharmony_ci 741e41f4b71Sopenharmony_ciasync function example() { 742e41f4b71Sopenharmony_ci console.info('createDeleteRequestDemo'); 743e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 744e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 745e41f4b71Sopenharmony_ci fetchColumns: [], 746e41f4b71Sopenharmony_ci predicates: predicates 747e41f4b71Sopenharmony_ci }; 748e41f4b71Sopenharmony_ci try { 749e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 750e41f4b71Sopenharmony_ci let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 751e41f4b71Sopenharmony_ci if (asset === undefined) { 752e41f4b71Sopenharmony_ci console.error('asset not exist'); 753e41f4b71Sopenharmony_ci return; 754e41f4b71Sopenharmony_ci } 755e41f4b71Sopenharmony_ci phAccessHelper.createDeleteRequest([asset.uri], (err) => { 756e41f4b71Sopenharmony_ci if (err === undefined) { 757e41f4b71Sopenharmony_ci console.info('createDeleteRequest successfully'); 758e41f4b71Sopenharmony_ci } else { 759e41f4b71Sopenharmony_ci console.error(`createDeleteRequest failed with error: ${err.code}, ${err.message}`); 760e41f4b71Sopenharmony_ci } 761e41f4b71Sopenharmony_ci }); 762e41f4b71Sopenharmony_ci } catch (err) { 763e41f4b71Sopenharmony_ci console.error(`fetch failed, error: ${err.code}, ${err.message}`); 764e41f4b71Sopenharmony_ci } 765e41f4b71Sopenharmony_ci} 766e41f4b71Sopenharmony_ci``` 767e41f4b71Sopenharmony_ci 768e41f4b71Sopenharmony_ci### createDeleteRequest<sup>(deprecated)</sup> 769e41f4b71Sopenharmony_ci 770e41f4b71Sopenharmony_cicreateDeleteRequest(uriList: Array<string>): Promise<void> 771e41f4b71Sopenharmony_ci 772e41f4b71Sopenharmony_ci创建一个弹出框来删除照片,删除的文件进入到回收站,使用Promise方式返回结果。 773e41f4b71Sopenharmony_ci 774e41f4b71Sopenharmony_ci> **说明:** 775e41f4b71Sopenharmony_ci> 776e41f4b71Sopenharmony_ci> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.deleteAssets](#deleteassets11-1)替代。 777e41f4b71Sopenharmony_ci 778e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 779e41f4b71Sopenharmony_ci 780e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 781e41f4b71Sopenharmony_ci 782e41f4b71Sopenharmony_ci**参数:** 783e41f4b71Sopenharmony_ci 784e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 785e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------- | 786e41f4b71Sopenharmony_ci| uriList | Array<string> | 是 | 待删除的媒体文件uri数组,最大删除数量300。 | 787e41f4b71Sopenharmony_ci 788e41f4b71Sopenharmony_ci**返回值:** 789e41f4b71Sopenharmony_ci 790e41f4b71Sopenharmony_ci| 类型 | 说明 | 791e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 792e41f4b71Sopenharmony_ci| Promise<void>| Promise对象,返回void。 | 793e41f4b71Sopenharmony_ci 794e41f4b71Sopenharmony_ci**错误码:** 795e41f4b71Sopenharmony_ci 796e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 797e41f4b71Sopenharmony_ci 798e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 799e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 800e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 801e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 802e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 803e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 804e41f4b71Sopenharmony_ci 805e41f4b71Sopenharmony_ci**示例:** 806e41f4b71Sopenharmony_ci 807e41f4b71Sopenharmony_ci```ts 808e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 809e41f4b71Sopenharmony_ci 810e41f4b71Sopenharmony_ciasync function example() { 811e41f4b71Sopenharmony_ci console.info('createDeleteRequestDemo'); 812e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 813e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 814e41f4b71Sopenharmony_ci fetchColumns: [], 815e41f4b71Sopenharmony_ci predicates: predicates 816e41f4b71Sopenharmony_ci }; 817e41f4b71Sopenharmony_ci try { 818e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 819e41f4b71Sopenharmony_ci let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 820e41f4b71Sopenharmony_ci if (asset === undefined) { 821e41f4b71Sopenharmony_ci console.error('asset not exist'); 822e41f4b71Sopenharmony_ci return; 823e41f4b71Sopenharmony_ci } 824e41f4b71Sopenharmony_ci await phAccessHelper.createDeleteRequest([asset.uri]); 825e41f4b71Sopenharmony_ci console.info('createDeleteRequest successfully'); 826e41f4b71Sopenharmony_ci } catch (err) { 827e41f4b71Sopenharmony_ci console.error(`createDeleteRequest failed with error: ${err.code}, ${err.message}`); 828e41f4b71Sopenharmony_ci } 829e41f4b71Sopenharmony_ci} 830e41f4b71Sopenharmony_ci``` 831e41f4b71Sopenharmony_ci 832e41f4b71Sopenharmony_ci### applyChanges<sup>11+</sup> 833e41f4b71Sopenharmony_ci 834e41f4b71Sopenharmony_ciapplyChanges(mediaChangeRequest: MediaChangeRequest): Promise<void> 835e41f4b71Sopenharmony_ci 836e41f4b71Sopenharmony_ci提交媒体变更请求,使用Promise方式返回结果。 837e41f4b71Sopenharmony_ci 838e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 839e41f4b71Sopenharmony_ci 840e41f4b71Sopenharmony_ci在提交创建资产的变更请求时,对于未申请'ohos.permission.WRITE_IMAGEVIDEO'权限的应用,可以用安全控件的方式调用该接口来创建媒体资源,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-savebutton.md)。 841e41f4b71Sopenharmony_ci 842e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 843e41f4b71Sopenharmony_ci 844e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 845e41f4b71Sopenharmony_ci 846e41f4b71Sopenharmony_ci**参数:** 847e41f4b71Sopenharmony_ci 848e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 849e41f4b71Sopenharmony_ci| -------- | ------------------------ | ---- | ------------------------- | 850e41f4b71Sopenharmony_ci| mediaChangeRequest | [MediaChangeRequest](#mediachangerequest11) | 是 | 媒体变更请求,支持资产变更请求和相册变更请求。 | 851e41f4b71Sopenharmony_ci 852e41f4b71Sopenharmony_ci**返回值:** 853e41f4b71Sopenharmony_ci 854e41f4b71Sopenharmony_ci| 类型 | 说明 | 855e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 856e41f4b71Sopenharmony_ci| Promise<void>| Promise对象,返回void。 | 857e41f4b71Sopenharmony_ci 858e41f4b71Sopenharmony_ci**错误码:** 859e41f4b71Sopenharmony_ci 860e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 861e41f4b71Sopenharmony_ci 862e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 863e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 864e41f4b71Sopenharmony_ci| 201 | Permission denied. | 865e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 866e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 867e41f4b71Sopenharmony_ci 868e41f4b71Sopenharmony_ci**示例:** 869e41f4b71Sopenharmony_ci 870e41f4b71Sopenharmony_ci该接口依赖于[MediaChangeRequest](#mediachangerequest11)对象,详细代码示例请参见[MediaAssetChangeRequest](#mediaassetchangerequest11)和[MediaAlbumChangeRequest](#mediaalbumchangerequest11)中的接口示例。 871e41f4b71Sopenharmony_ci 872e41f4b71Sopenharmony_ci### release 873e41f4b71Sopenharmony_ci 874e41f4b71Sopenharmony_cirelease(callback: AsyncCallback<void>): void 875e41f4b71Sopenharmony_ci 876e41f4b71Sopenharmony_ci释放PhotoAccessHelper实例,使用callback方式返回结果。 877e41f4b71Sopenharmony_ci当后续不需要使用PhotoAccessHelper实例中的方法时调用。 878e41f4b71Sopenharmony_ci 879e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 880e41f4b71Sopenharmony_ci 881e41f4b71Sopenharmony_ci**参数:** 882e41f4b71Sopenharmony_ci 883e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 884e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | -------------------- | 885e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调表示成功还是失败。 | 886e41f4b71Sopenharmony_ci 887e41f4b71Sopenharmony_ci**错误码:** 888e41f4b71Sopenharmony_ci 889e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 890e41f4b71Sopenharmony_ci 891e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 892e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 893e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 894e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 895e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 896e41f4b71Sopenharmony_ci 897e41f4b71Sopenharmony_ci**示例:** 898e41f4b71Sopenharmony_ci 899e41f4b71Sopenharmony_ci```ts 900e41f4b71Sopenharmony_ciasync function example() { 901e41f4b71Sopenharmony_ci console.info('releaseDemo'); 902e41f4b71Sopenharmony_ci phAccessHelper.release((err) => { 903e41f4b71Sopenharmony_ci if (err !== undefined) { 904e41f4b71Sopenharmony_ci console.error(`release failed. error: ${err.code}, ${err.message}`); 905e41f4b71Sopenharmony_ci } else { 906e41f4b71Sopenharmony_ci console.info('release ok.'); 907e41f4b71Sopenharmony_ci } 908e41f4b71Sopenharmony_ci }); 909e41f4b71Sopenharmony_ci} 910e41f4b71Sopenharmony_ci``` 911e41f4b71Sopenharmony_ci 912e41f4b71Sopenharmony_ci### release 913e41f4b71Sopenharmony_ci 914e41f4b71Sopenharmony_cirelease(): Promise<void> 915e41f4b71Sopenharmony_ci 916e41f4b71Sopenharmony_ci释放PhotoAccessHelper实例,使用Promise方式返回结果。 917e41f4b71Sopenharmony_ci当后续不需要使用PhotoAccessHelper 实例中的方法时调用。 918e41f4b71Sopenharmony_ci 919e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 920e41f4b71Sopenharmony_ci 921e41f4b71Sopenharmony_ci**返回值:** 922e41f4b71Sopenharmony_ci 923e41f4b71Sopenharmony_ci| 类型 | 说明 | 924e41f4b71Sopenharmony_ci| ------------------- | --------------------------------- | 925e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,返回void。 | 926e41f4b71Sopenharmony_ci 927e41f4b71Sopenharmony_ci**错误码:** 928e41f4b71Sopenharmony_ci 929e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 930e41f4b71Sopenharmony_ci 931e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 932e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 933e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 934e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 935e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 936e41f4b71Sopenharmony_ci 937e41f4b71Sopenharmony_ci**示例:** 938e41f4b71Sopenharmony_ci 939e41f4b71Sopenharmony_ci```ts 940e41f4b71Sopenharmony_ciasync function example() { 941e41f4b71Sopenharmony_ci console.info('releaseDemo'); 942e41f4b71Sopenharmony_ci try { 943e41f4b71Sopenharmony_ci await phAccessHelper.release(); 944e41f4b71Sopenharmony_ci console.info('release ok.'); 945e41f4b71Sopenharmony_ci } catch (err) { 946e41f4b71Sopenharmony_ci console.error(`release failed. error: ${err.code}, ${err.message}`); 947e41f4b71Sopenharmony_ci } 948e41f4b71Sopenharmony_ci} 949e41f4b71Sopenharmony_ci``` 950e41f4b71Sopenharmony_ci 951e41f4b71Sopenharmony_ci### showAssetsCreationDialog<sup>12+</sup> 952e41f4b71Sopenharmony_ci 953e41f4b71Sopenharmony_cishowAssetsCreationDialog(srcFileUris: Array<string>, photoCreationConfigs: Array<PhotoCreationConfig>): Promise<Array<string>> 954e41f4b71Sopenharmony_ci 955e41f4b71Sopenharmony_ci调用接口拉起保存确认弹窗。用户同意保存后,返回已创建并授予保存权限的uri列表,该列表永久生效,应用可使用该uri写入图片/视频。如果用户拒绝保存,将返回空列表。 956e41f4b71Sopenharmony_ci 957e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 958e41f4b71Sopenharmony_ci 959e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 960e41f4b71Sopenharmony_ci 961e41f4b71Sopenharmony_ci**参数:** 962e41f4b71Sopenharmony_ci 963e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 964e41f4b71Sopenharmony_ci| -------- |----------------------------------------------------------------------| ---- | ------------------------- | 965e41f4b71Sopenharmony_ci| srcFileUris | Array<string> | 是 | 需保存到媒体库中的图片/视频文件对应的[媒体库uri](../../file-management/user-file-uri-intro.md#媒体文件uri)。<br>**注意:** 仅支持处理图片、视频uri。 | 966e41f4b71Sopenharmony_ci| photoCreationConfigs | Array<[PhotoCreationConfig](#photocreationconfig12)> | 是 | 保存图片/视频到媒体库的配置,包括保存的文件名等,与srcFileUris保持一一对应。 | 967e41f4b71Sopenharmony_ci 968e41f4b71Sopenharmony_ci**返回值:** 969e41f4b71Sopenharmony_ci 970e41f4b71Sopenharmony_ci| 类型 | 说明 | 971e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 972e41f4b71Sopenharmony_ci| Promise<Array<string>> | Promise对象,返回给应用的媒体库文件uri列表。Uri已对应用授权,支持应用写入数据。 | 973e41f4b71Sopenharmony_ci 974e41f4b71Sopenharmony_ci**错误码:** 975e41f4b71Sopenharmony_ci 976e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 977e41f4b71Sopenharmony_ci 978e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 979e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 980e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 981e41f4b71Sopenharmony_ci| 14000011 | Internal system error | 982e41f4b71Sopenharmony_ci 983e41f4b71Sopenharmony_ci**示例:** 984e41f4b71Sopenharmony_ci 985e41f4b71Sopenharmony_ci```ts 986e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 987e41f4b71Sopenharmony_ciimport { photoAccessHelper } from '@kit.MediaLibraryKit'; 988e41f4b71Sopenharmony_ci 989e41f4b71Sopenharmony_ciasync function example() { 990e41f4b71Sopenharmony_ci console.info('ShowAssetsCreationDialogDemo.'); 991e41f4b71Sopenharmony_ci 992e41f4b71Sopenharmony_ci try { 993e41f4b71Sopenharmony_ci // 获取需要保存到媒体库的位于应用沙箱的图片/视频uri 994e41f4b71Sopenharmony_ci let srcFileUris: Array<string> = [ 995e41f4b71Sopenharmony_ci 'file://fileUriDemo1' // 实际场景请使用真实的uri 996e41f4b71Sopenharmony_ci ]; 997e41f4b71Sopenharmony_ci let photoCreationConfigs: Array<photoAccessHelper.PhotoCreationConfig> = [ 998e41f4b71Sopenharmony_ci { 999e41f4b71Sopenharmony_ci title: 'test2', // 可选 1000e41f4b71Sopenharmony_ci fileNameExtension: 'jpg', 1001e41f4b71Sopenharmony_ci photoType: photoAccessHelper.PhotoType.IMAGE, 1002e41f4b71Sopenharmony_ci subtype: photoAccessHelper.PhotoSubtype.DEFAULT, // 可选 1003e41f4b71Sopenharmony_ci } 1004e41f4b71Sopenharmony_ci ]; 1005e41f4b71Sopenharmony_ci let desFileUris: Array<string> = await phAccessHelper.showAssetsCreationDialog(srcFileUris, photoCreationConfigs); 1006e41f4b71Sopenharmony_ci console.info('showAssetsCreationDialog success, data is ' + desFileUris); 1007e41f4b71Sopenharmony_ci } catch (err) { 1008e41f4b71Sopenharmony_ci console.error('showAssetsCreationDialog failed, errCode is ' + err.code + ', errMsg is ' + err.message); 1009e41f4b71Sopenharmony_ci } 1010e41f4b71Sopenharmony_ci} 1011e41f4b71Sopenharmony_ci``` 1012e41f4b71Sopenharmony_ci 1013e41f4b71Sopenharmony_ci### createAssetWithShortTermPermission<sup>12+</sup> 1014e41f4b71Sopenharmony_ci 1015e41f4b71Sopenharmony_cicreateAssetWithShortTermPermission(photoCreationConfig: PhotoCreationConfig): Promise<string> 1016e41f4b71Sopenharmony_ci 1017e41f4b71Sopenharmony_ci接口提供给应用调用,支持首次调用后拉起保存确认弹框。在用户同意保存后返回已创建并授予保存权限的uri,支持应用使用uri写入图片/视频; 1018e41f4b71Sopenharmony_ci在用户"同意"后的5min之内,同一个应用再次调用接口,支持无需弹框确认自动返回已授权的uri给应用,支持应用保存图片/视频。 1019e41f4b71Sopenharmony_ci 1020e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1021e41f4b71Sopenharmony_ci 1022e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.SHORT_TERM_WRITE_IMAGEVIDEO 1023e41f4b71Sopenharmony_ci 1024e41f4b71Sopenharmony_ci**参数:** 1025e41f4b71Sopenharmony_ci 1026e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1027e41f4b71Sopenharmony_ci| -------- |----------------------------------------------------------------------| ---- | ------------------------- | 1028e41f4b71Sopenharmony_ci| photoCreationConfig | [PhotoCreationConfig](#photocreationconfig12); | 是 | 保存图片/视频到媒体库的配置,包括保存的文件名等。 | 1029e41f4b71Sopenharmony_ci 1030e41f4b71Sopenharmony_ci**返回值:** 1031e41f4b71Sopenharmony_ci 1032e41f4b71Sopenharmony_ci| 类型 | 说明 | 1033e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 1034e41f4b71Sopenharmony_ci| Promise<string> | Promise对象,返回给应用的媒体库文件uri。Uri已对应用授权,支持应用写入数据。 | 1035e41f4b71Sopenharmony_ci 1036e41f4b71Sopenharmony_ci**错误码:** 1037e41f4b71Sopenharmony_ci 1038e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1039e41f4b71Sopenharmony_ci 1040e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1041e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1042e41f4b71Sopenharmony_ci| 201 | Permission denied | 1043e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1044e41f4b71Sopenharmony_ci| 14000011 | Internal system error | 1045e41f4b71Sopenharmony_ci 1046e41f4b71Sopenharmony_ci**示例:** 1047e41f4b71Sopenharmony_ci 1048e41f4b71Sopenharmony_ci```ts 1049e41f4b71Sopenharmony_ciimport fs from '@ohos.file.fs'; 1050e41f4b71Sopenharmony_ciimport { photoAccessHelper } from '@kit.MediaLibraryKit'; 1051e41f4b71Sopenharmony_ci 1052e41f4b71Sopenharmony_ciasync function example() { 1053e41f4b71Sopenharmony_ci console.info('createAssetWithShortTermPermissionDemo.'); 1054e41f4b71Sopenharmony_ci 1055e41f4b71Sopenharmony_ci try { 1056e41f4b71Sopenharmony_ci let phAccessHelper: photoAccessHelper.PhotoAccessHelper = photoAccessHelper.getPhotoAccessHelper(this.context); 1057e41f4b71Sopenharmony_ci let photoCreationConfig: photoAccessHelper.PhotoCreationConfig = { 1058e41f4b71Sopenharmony_ci title: '123456', 1059e41f4b71Sopenharmony_ci fileNameExtension: 'jpg', 1060e41f4b71Sopenharmony_ci photoType: photoAccessHelper.PhotoType.IMAGE, 1061e41f4b71Sopenharmony_ci subtype: photoAccessHelper.PhotoSubtype.DEFAULT, 1062e41f4b71Sopenharmony_ci }; 1063e41f4b71Sopenharmony_ci 1064e41f4b71Sopenharmony_ci let resultUri: string = await phAccessHelper.createAssetWithShortTermPermission(photoCreationConfig); 1065e41f4b71Sopenharmony_ci let resultFile: fs.File = fs.openSync(resultUri, fs.OpenMode.READ_WRITE); 1066e41f4b71Sopenharmony_ci // 实际场景请使用真实的uri和文件大小 1067e41f4b71Sopenharmony_ci let srcFile: fs.File = fs.openSync("file://test.jpg", fs.OpenMode.READ_ONLY); 1068e41f4b71Sopenharmony_ci let bufSize: number = 2000000; 1069e41f4b71Sopenharmony_ci let readSize: number = 0; 1070e41f4b71Sopenharmony_ci let buf = new ArrayBuffer(bufSize); 1071e41f4b71Sopenharmony_ci let readLen = fs.readSync(srcFile.fd, buf, { 1072e41f4b71Sopenharmony_ci offset: readSize, 1073e41f4b71Sopenharmony_ci length: bufSize 1074e41f4b71Sopenharmony_ci }); 1075e41f4b71Sopenharmony_ci if (readLen > 0) { 1076e41f4b71Sopenharmony_ci readSize += readLen; 1077e41f4b71Sopenharmony_ci fs.writeSync(resultFile.fd, buf, { length: readLen }); 1078e41f4b71Sopenharmony_ci } 1079e41f4b71Sopenharmony_ci fs.closeSync(srcFile); 1080e41f4b71Sopenharmony_ci fs.closeSync(resultFile); 1081e41f4b71Sopenharmony_ci } catch (err) { 1082e41f4b71Sopenharmony_ci console.error('createAssetWithShortTermPermission failed, errCode is ' + err.code + ', errMsg is ' + err.message); 1083e41f4b71Sopenharmony_ci } 1084e41f4b71Sopenharmony_ci 1085e41f4b71Sopenharmony_ci} 1086e41f4b71Sopenharmony_ci``` 1087e41f4b71Sopenharmony_ci 1088e41f4b71Sopenharmony_ci## PhotoAsset 1089e41f4b71Sopenharmony_ci 1090e41f4b71Sopenharmony_ci提供封装文件属性的方法。 1091e41f4b71Sopenharmony_ci 1092e41f4b71Sopenharmony_ci### 属性 1093e41f4b71Sopenharmony_ci 1094e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1095e41f4b71Sopenharmony_ci 1096e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 1097e41f4b71Sopenharmony_ci| ------------------------- | ------------------------ | ---- | ---- | ------------------------------------------------------ | 1098e41f4b71Sopenharmony_ci| uri | string | 是 | 否 | 媒体文件资源uri(如:file://media/Photo/1/IMG_datetime_0001/displayName.jpg),详情参见用户文件uri介绍中的[媒体文件uri](../../file-management/user-file-uri-intro.md#媒体文件uri)<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 1099e41f4b71Sopenharmony_ci| photoType | [PhotoType](#phototype) | 是 | 否 | 媒体文件类型 | 1100e41f4b71Sopenharmony_ci| displayName | string | 是 | 否 | 显示文件名,包含后缀名。 | 1101e41f4b71Sopenharmony_ci 1102e41f4b71Sopenharmony_ci### get 1103e41f4b71Sopenharmony_ci 1104e41f4b71Sopenharmony_ciget(member: string): MemberType 1105e41f4b71Sopenharmony_ci 1106e41f4b71Sopenharmony_ci获取PhotoAsset成员参数。 1107e41f4b71Sopenharmony_ci 1108e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1109e41f4b71Sopenharmony_ci 1110e41f4b71Sopenharmony_ci**参数:** 1111e41f4b71Sopenharmony_ci 1112e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1113e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ----- | 1114e41f4b71Sopenharmony_ci| member | string | 是 | 成员参数名称,在get时,除了'uri'、'media_type'、'subtype'和'display_name'四个属性之外,其他的属性都需要在fetchColumns中填入需要get的[PhotoKeys](#photokeys),例如:get title属性fetchColumns: ['title']。 | 1115e41f4b71Sopenharmony_ci 1116e41f4b71Sopenharmony_ci**返回值:** 1117e41f4b71Sopenharmony_ci 1118e41f4b71Sopenharmony_ci| 类型 | 说明 | 1119e41f4b71Sopenharmony_ci| ------------------- | --------------------------------- | 1120e41f4b71Sopenharmony_ci| [MemberType](#membertype) | 获取PhotoAsset成员参数的值。 | 1121e41f4b71Sopenharmony_ci 1122e41f4b71Sopenharmony_ci**错误码:** 1123e41f4b71Sopenharmony_ci 1124e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1125e41f4b71Sopenharmony_ci 1126e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1127e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1128e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1129e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 1130e41f4b71Sopenharmony_ci| 14000014 | Member is not a valid PhotoKey. | 1131e41f4b71Sopenharmony_ci 1132e41f4b71Sopenharmony_ci**示例:** 1133e41f4b71Sopenharmony_ci 1134e41f4b71Sopenharmony_ci```ts 1135e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 1136e41f4b71Sopenharmony_ci 1137e41f4b71Sopenharmony_ciasync function example() { 1138e41f4b71Sopenharmony_ci console.info('photoAssetGetDemo'); 1139e41f4b71Sopenharmony_ci try { 1140e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1141e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 1142e41f4b71Sopenharmony_ci fetchColumns: ['title'], 1143e41f4b71Sopenharmony_ci predicates: predicates 1144e41f4b71Sopenharmony_ci }; 1145e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 1146e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 1147e41f4b71Sopenharmony_ci let title: photoAccessHelper.PhotoKeys = photoAccessHelper.PhotoKeys.TITLE; 1148e41f4b71Sopenharmony_ci let photoAssetTitle: photoAccessHelper.MemberType = photoAsset.get(title.toString()); 1149e41f4b71Sopenharmony_ci console.info('photoAsset Get photoAssetTitle = ', photoAssetTitle); 1150e41f4b71Sopenharmony_ci } catch (err) { 1151e41f4b71Sopenharmony_ci console.error(`release failed. error: ${err.code}, ${err.message}`); 1152e41f4b71Sopenharmony_ci } 1153e41f4b71Sopenharmony_ci} 1154e41f4b71Sopenharmony_ci``` 1155e41f4b71Sopenharmony_ci 1156e41f4b71Sopenharmony_ci### set 1157e41f4b71Sopenharmony_ci 1158e41f4b71Sopenharmony_ciset(member: string, value: string): void 1159e41f4b71Sopenharmony_ci 1160e41f4b71Sopenharmony_ci设置PhotoAsset成员参数。 1161e41f4b71Sopenharmony_ci 1162e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1163e41f4b71Sopenharmony_ci 1164e41f4b71Sopenharmony_ci**参数:** 1165e41f4b71Sopenharmony_ci 1166e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1167e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ----- | 1168e41f4b71Sopenharmony_ci| member | string | 是 | 成员参数名称例如:[PhotoKeys](#photokeys).TITLE。 | 1169e41f4b71Sopenharmony_ci| value | string | 是 | 设置成员参数名称,只能修改[PhotoKeys](#photokeys).TITLE的值。 | 1170e41f4b71Sopenharmony_ci 1171e41f4b71Sopenharmony_ci**错误码:** 1172e41f4b71Sopenharmony_ci 1173e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1174e41f4b71Sopenharmony_ci 1175e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1176e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1177e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1178e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 1179e41f4b71Sopenharmony_ci| 14000014 | Member is not a valid PhotoKey. | 1180e41f4b71Sopenharmony_ci 1181e41f4b71Sopenharmony_ci**示例:** 1182e41f4b71Sopenharmony_ci 1183e41f4b71Sopenharmony_ci```ts 1184e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 1185e41f4b71Sopenharmony_ci 1186e41f4b71Sopenharmony_ciasync function example() { 1187e41f4b71Sopenharmony_ci console.info('photoAssetSetDemo'); 1188e41f4b71Sopenharmony_ci try { 1189e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1190e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 1191e41f4b71Sopenharmony_ci fetchColumns: ['title'], 1192e41f4b71Sopenharmony_ci predicates: predicates 1193e41f4b71Sopenharmony_ci }; 1194e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 1195e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 1196e41f4b71Sopenharmony_ci let title: string = photoAccessHelper.PhotoKeys.TITLE.toString(); 1197e41f4b71Sopenharmony_ci photoAsset.set(title, 'newTitle'); 1198e41f4b71Sopenharmony_ci } catch (err) { 1199e41f4b71Sopenharmony_ci console.error(`release failed. error: ${err.code}, ${err.message}`); 1200e41f4b71Sopenharmony_ci } 1201e41f4b71Sopenharmony_ci} 1202e41f4b71Sopenharmony_ci``` 1203e41f4b71Sopenharmony_ci 1204e41f4b71Sopenharmony_ci### commitModify 1205e41f4b71Sopenharmony_ci 1206e41f4b71Sopenharmony_cicommitModify(callback: AsyncCallback<void>): void 1207e41f4b71Sopenharmony_ci 1208e41f4b71Sopenharmony_ci修改文件的元数据,使用callback方式返回异步结果。 1209e41f4b71Sopenharmony_ci 1210e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1211e41f4b71Sopenharmony_ci 1212e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1213e41f4b71Sopenharmony_ci 1214e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1215e41f4b71Sopenharmony_ci 1216e41f4b71Sopenharmony_ci**参数:** 1217e41f4b71Sopenharmony_ci 1218e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1219e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ----- | 1220e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | callback返回void。 | 1221e41f4b71Sopenharmony_ci 1222e41f4b71Sopenharmony_ci**错误码:** 1223e41f4b71Sopenharmony_ci 1224e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1225e41f4b71Sopenharmony_ci 1226e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1227e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1228e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1229e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 1230e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 1231e41f4b71Sopenharmony_ci| 14000001 | Invalid display name. | 1232e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 1233e41f4b71Sopenharmony_ci 1234e41f4b71Sopenharmony_ci**示例:** 1235e41f4b71Sopenharmony_ci 1236e41f4b71Sopenharmony_ci```ts 1237e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 1238e41f4b71Sopenharmony_ci 1239e41f4b71Sopenharmony_ciasync function example() { 1240e41f4b71Sopenharmony_ci console.info('commitModifyDemo'); 1241e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1242e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 1243e41f4b71Sopenharmony_ci fetchColumns: ['title'], 1244e41f4b71Sopenharmony_ci predicates: predicates 1245e41f4b71Sopenharmony_ci }; 1246e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 1247e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 1248e41f4b71Sopenharmony_ci let title: string = photoAccessHelper.PhotoKeys.TITLE.toString(); 1249e41f4b71Sopenharmony_ci let photoAssetTitle: photoAccessHelper.MemberType = photoAsset.get(title); 1250e41f4b71Sopenharmony_ci console.info('photoAsset get photoAssetTitle = ', photoAssetTitle); 1251e41f4b71Sopenharmony_ci photoAsset.set(title, 'newTitle2'); 1252e41f4b71Sopenharmony_ci photoAsset.commitModify((err) => { 1253e41f4b71Sopenharmony_ci if (err === undefined) { 1254e41f4b71Sopenharmony_ci let newPhotoAssetTitle: photoAccessHelper.MemberType = photoAsset.get(title); 1255e41f4b71Sopenharmony_ci console.info('photoAsset get newPhotoAssetTitle = ', newPhotoAssetTitle); 1256e41f4b71Sopenharmony_ci } else { 1257e41f4b71Sopenharmony_ci console.error(`commitModify failed, error: ${err.code}, ${err.message}`); 1258e41f4b71Sopenharmony_ci } 1259e41f4b71Sopenharmony_ci }); 1260e41f4b71Sopenharmony_ci} 1261e41f4b71Sopenharmony_ci``` 1262e41f4b71Sopenharmony_ci 1263e41f4b71Sopenharmony_ci### commitModify 1264e41f4b71Sopenharmony_ci 1265e41f4b71Sopenharmony_cicommitModify(): Promise<void> 1266e41f4b71Sopenharmony_ci 1267e41f4b71Sopenharmony_ci修改文件的元数据,使用promise方式返回异步结果。 1268e41f4b71Sopenharmony_ci 1269e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1270e41f4b71Sopenharmony_ci 1271e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1272e41f4b71Sopenharmony_ci 1273e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1274e41f4b71Sopenharmony_ci 1275e41f4b71Sopenharmony_ci**返回值:** 1276e41f4b71Sopenharmony_ci 1277e41f4b71Sopenharmony_ci| 类型 | 说明 | 1278e41f4b71Sopenharmony_ci| ------------------- | ---------- | 1279e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,返回void。 | 1280e41f4b71Sopenharmony_ci 1281e41f4b71Sopenharmony_ci**错误码:** 1282e41f4b71Sopenharmony_ci 1283e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1284e41f4b71Sopenharmony_ci 1285e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1286e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1287e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1288e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 1289e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 1290e41f4b71Sopenharmony_ci| 14000001 | Invalid display name. | 1291e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 1292e41f4b71Sopenharmony_ci 1293e41f4b71Sopenharmony_ci**示例:** 1294e41f4b71Sopenharmony_ci 1295e41f4b71Sopenharmony_ci```ts 1296e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 1297e41f4b71Sopenharmony_ci 1298e41f4b71Sopenharmony_ciasync function example() { 1299e41f4b71Sopenharmony_ci console.info('commitModifyDemo'); 1300e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1301e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 1302e41f4b71Sopenharmony_ci fetchColumns: ['title'], 1303e41f4b71Sopenharmony_ci predicates: predicates 1304e41f4b71Sopenharmony_ci }; 1305e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 1306e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 1307e41f4b71Sopenharmony_ci let title: string = photoAccessHelper.PhotoKeys.TITLE.toString(); 1308e41f4b71Sopenharmony_ci let photoAssetTitle: photoAccessHelper.MemberType = photoAsset.get(title); 1309e41f4b71Sopenharmony_ci console.info('photoAsset get photoAssetTitle = ', photoAssetTitle); 1310e41f4b71Sopenharmony_ci photoAsset.set(title, 'newTitle3'); 1311e41f4b71Sopenharmony_ci try { 1312e41f4b71Sopenharmony_ci await photoAsset.commitModify(); 1313e41f4b71Sopenharmony_ci let newPhotoAssetTitle: photoAccessHelper.MemberType = photoAsset.get(title); 1314e41f4b71Sopenharmony_ci console.info('photoAsset get newPhotoAssetTitle = ', newPhotoAssetTitle); 1315e41f4b71Sopenharmony_ci } catch (err) { 1316e41f4b71Sopenharmony_ci console.error(`release failed. error: ${err.code}, ${err.message}`); 1317e41f4b71Sopenharmony_ci } 1318e41f4b71Sopenharmony_ci} 1319e41f4b71Sopenharmony_ci``` 1320e41f4b71Sopenharmony_ci 1321e41f4b71Sopenharmony_ci### getReadOnlyFd<sup>(deprecated)</sup> 1322e41f4b71Sopenharmony_ci 1323e41f4b71Sopenharmony_cigetReadOnlyFd(callback: AsyncCallback<number>): void 1324e41f4b71Sopenharmony_ci 1325e41f4b71Sopenharmony_ci以只读方式打开当前文件,使用callback方式返回异步结果。 1326e41f4b71Sopenharmony_ci 1327e41f4b71Sopenharmony_ci> **说明:** 1328e41f4b71Sopenharmony_ci> 1329e41f4b71Sopenharmony_ci> 从API version 10开始支持,从API version 11开始废弃。出于安全考量,不再提供获取正式媒体文件句柄的接口。 1330e41f4b71Sopenharmony_ci 1331e41f4b71Sopenharmony_ci**注意**:返回的文件描述符在使用完毕后需要调用close进行释放。 1332e41f4b71Sopenharmony_ci 1333e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 1334e41f4b71Sopenharmony_ci 1335e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1336e41f4b71Sopenharmony_ci 1337e41f4b71Sopenharmony_ci**参数:** 1338e41f4b71Sopenharmony_ci 1339e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1340e41f4b71Sopenharmony_ci| -------- | --------------------------- | ---- | ----------------------------------- | 1341e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | callback返回文件描述符。 | 1342e41f4b71Sopenharmony_ci 1343e41f4b71Sopenharmony_ci**错误码:** 1344e41f4b71Sopenharmony_ci 1345e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1346e41f4b71Sopenharmony_ci 1347e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1348e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1349e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1350e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 1351e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 1352e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 1353e41f4b71Sopenharmony_ci 1354e41f4b71Sopenharmony_ci**示例:** 1355e41f4b71Sopenharmony_ci 1356e41f4b71Sopenharmony_ci```ts 1357e41f4b71Sopenharmony_ciasync function example() { 1358e41f4b71Sopenharmony_ci console.info('getReadOnlyFdDemo'); 1359e41f4b71Sopenharmony_ci // 需要保证设备中存在可读取图片视频文件 1360e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1361e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 1362e41f4b71Sopenharmony_ci fetchColumns: [], 1363e41f4b71Sopenharmony_ci predicates: predicates 1364e41f4b71Sopenharmony_ci }; 1365e41f4b71Sopenharmony_ci let assetResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 1366e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await assetResult.getFirstObject(); 1367e41f4b71Sopenharmony_ci photoAsset.getReadOnlyFd((err, fd) => { 1368e41f4b71Sopenharmony_ci if (fd !== undefined) { 1369e41f4b71Sopenharmony_ci console.info('File fd' + fd); 1370e41f4b71Sopenharmony_ci photoAsset.close(fd); 1371e41f4b71Sopenharmony_ci } else { 1372e41f4b71Sopenharmony_ci console.error(`getReadOnlyFd err: ${err.code}, ${err.message}`); 1373e41f4b71Sopenharmony_ci } 1374e41f4b71Sopenharmony_ci }); 1375e41f4b71Sopenharmony_ci} 1376e41f4b71Sopenharmony_ci``` 1377e41f4b71Sopenharmony_ci 1378e41f4b71Sopenharmony_ci### getReadOnlyFd<sup>(deprecated)</sup> 1379e41f4b71Sopenharmony_ci 1380e41f4b71Sopenharmony_cigetReadOnlyFd(): Promise<number> 1381e41f4b71Sopenharmony_ci 1382e41f4b71Sopenharmony_ci以只读方式打开当前文件,使用promise方式返回异步结果。 1383e41f4b71Sopenharmony_ci 1384e41f4b71Sopenharmony_ci> **说明:** 1385e41f4b71Sopenharmony_ci> 1386e41f4b71Sopenharmony_ci> 从API version 10开始支持,从API version 11开始废弃。出于安全考量,不再提供获取正式媒体文件句柄的接口。 1387e41f4b71Sopenharmony_ci 1388e41f4b71Sopenharmony_ci**注意**:返回的文件描述符在使用完毕后需要调用close进行释放。 1389e41f4b71Sopenharmony_ci 1390e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 1391e41f4b71Sopenharmony_ci 1392e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1393e41f4b71Sopenharmony_ci 1394e41f4b71Sopenharmony_ci**返回值:** 1395e41f4b71Sopenharmony_ci 1396e41f4b71Sopenharmony_ci| 类型 | 说明 | 1397e41f4b71Sopenharmony_ci| --------------------- | ------------- | 1398e41f4b71Sopenharmony_ci| Promise<number> | Promise对象,返回文件描述符。 | 1399e41f4b71Sopenharmony_ci 1400e41f4b71Sopenharmony_ci**错误码:** 1401e41f4b71Sopenharmony_ci 1402e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1403e41f4b71Sopenharmony_ci 1404e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1405e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1406e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1407e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 1408e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 1409e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 1410e41f4b71Sopenharmony_ci 1411e41f4b71Sopenharmony_ci**示例:** 1412e41f4b71Sopenharmony_ci 1413e41f4b71Sopenharmony_ci```ts 1414e41f4b71Sopenharmony_ciasync function example() { 1415e41f4b71Sopenharmony_ci console.info('getReadOnlyFdDemo'); 1416e41f4b71Sopenharmony_ci try { 1417e41f4b71Sopenharmony_ci // 需要保证设备中存在可读取图片视频文件 1418e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1419e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 1420e41f4b71Sopenharmony_ci fetchColumns: [], 1421e41f4b71Sopenharmony_ci predicates: predicates 1422e41f4b71Sopenharmony_ci }; 1423e41f4b71Sopenharmony_ci let assetResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 1424e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await assetResult.getFirstObject(); 1425e41f4b71Sopenharmony_ci let fd: number = await photoAsset.getReadOnlyFd(); 1426e41f4b71Sopenharmony_ci if (fd !== undefined) { 1427e41f4b71Sopenharmony_ci console.info('File fd' + fd); 1428e41f4b71Sopenharmony_ci photoAsset.close(fd); 1429e41f4b71Sopenharmony_ci } else { 1430e41f4b71Sopenharmony_ci console.error('getReadOnlyFd fail'); 1431e41f4b71Sopenharmony_ci } 1432e41f4b71Sopenharmony_ci } catch (err) { 1433e41f4b71Sopenharmony_ci console.error(`getReadOnlyFd demo err: ${err.code}, ${err.message}`); 1434e41f4b71Sopenharmony_ci } 1435e41f4b71Sopenharmony_ci} 1436e41f4b71Sopenharmony_ci``` 1437e41f4b71Sopenharmony_ci 1438e41f4b71Sopenharmony_ci### close<sup>(deprecated)</sup> 1439e41f4b71Sopenharmony_ci 1440e41f4b71Sopenharmony_ciclose(fd: number, callback: AsyncCallback<void>): void 1441e41f4b71Sopenharmony_ci 1442e41f4b71Sopenharmony_ci关闭当前文件,使用callback方式返回异步结果。 1443e41f4b71Sopenharmony_ci 1444e41f4b71Sopenharmony_ci> **说明:** 1445e41f4b71Sopenharmony_ci> 1446e41f4b71Sopenharmony_ci> 从API version 10开始支持,从API version 11开始废弃。出于安全考量,不再提供获取正式媒体文件句柄的接口。对应的close接口一并废弃。 1447e41f4b71Sopenharmony_ci 1448e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1449e41f4b71Sopenharmony_ci 1450e41f4b71Sopenharmony_ci**参数:** 1451e41f4b71Sopenharmony_ci 1452e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1453e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ----- | 1454e41f4b71Sopenharmony_ci| fd | number | 是 | 文件描述符。 | 1455e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | callback返回void。 | 1456e41f4b71Sopenharmony_ci 1457e41f4b71Sopenharmony_ci**错误码:** 1458e41f4b71Sopenharmony_ci 1459e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1460e41f4b71Sopenharmony_ci 1461e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1462e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1463e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1464e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 1465e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 1466e41f4b71Sopenharmony_ci 1467e41f4b71Sopenharmony_ci**示例:** 1468e41f4b71Sopenharmony_ci 1469e41f4b71Sopenharmony_ci```ts 1470e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 1471e41f4b71Sopenharmony_ci 1472e41f4b71Sopenharmony_ciasync function example() { 1473e41f4b71Sopenharmony_ci console.info('closeDemo'); 1474e41f4b71Sopenharmony_ci try { 1475e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1476e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 1477e41f4b71Sopenharmony_ci fetchColumns: [], 1478e41f4b71Sopenharmony_ci predicates: predicates 1479e41f4b71Sopenharmony_ci }; 1480e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 1481e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 1482e41f4b71Sopenharmony_ci let fd: number = await photoAsset.open('rw'); 1483e41f4b71Sopenharmony_ci console.info('file fd', fd); 1484e41f4b71Sopenharmony_ci photoAsset.close(fd, (err) => { 1485e41f4b71Sopenharmony_ci if (err === undefined) { 1486e41f4b71Sopenharmony_ci console.info('asset close succeed.'); 1487e41f4b71Sopenharmony_ci } else { 1488e41f4b71Sopenharmony_ci console.error(`close failed, error: ${err.code}, ${err.message}`); 1489e41f4b71Sopenharmony_ci } 1490e41f4b71Sopenharmony_ci }); 1491e41f4b71Sopenharmony_ci } catch (err) { 1492e41f4b71Sopenharmony_ci console.error(`close failed, error: ${err.code}, ${err.message}`); 1493e41f4b71Sopenharmony_ci } 1494e41f4b71Sopenharmony_ci} 1495e41f4b71Sopenharmony_ci``` 1496e41f4b71Sopenharmony_ci 1497e41f4b71Sopenharmony_ci### close<sup>(deprecated)</sup> 1498e41f4b71Sopenharmony_ci 1499e41f4b71Sopenharmony_ciclose(fd: number): Promise<void> 1500e41f4b71Sopenharmony_ci 1501e41f4b71Sopenharmony_ci关闭当前文件,使用promise方式返回异步结果。 1502e41f4b71Sopenharmony_ci 1503e41f4b71Sopenharmony_ci> **说明:** 1504e41f4b71Sopenharmony_ci> 1505e41f4b71Sopenharmony_ci> 从API version 10开始支持,从API version 11开始废弃。出于安全考量,不再提供获取正式媒体文件句柄的接口。对应的close接口一并废弃。 1506e41f4b71Sopenharmony_ci 1507e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1508e41f4b71Sopenharmony_ci 1509e41f4b71Sopenharmony_ci**参数:** 1510e41f4b71Sopenharmony_ci 1511e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1512e41f4b71Sopenharmony_ci| ---- | ------ | ---- | ----- | 1513e41f4b71Sopenharmony_ci| fd | number | 是 | 文件描述符。 | 1514e41f4b71Sopenharmony_ci 1515e41f4b71Sopenharmony_ci**返回值:** 1516e41f4b71Sopenharmony_ci 1517e41f4b71Sopenharmony_ci| 类型 | 说明 | 1518e41f4b71Sopenharmony_ci| ------------------- | ---------- | 1519e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,返回void。 | 1520e41f4b71Sopenharmony_ci 1521e41f4b71Sopenharmony_ci**错误码:** 1522e41f4b71Sopenharmony_ci 1523e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1524e41f4b71Sopenharmony_ci 1525e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1526e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1527e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1528e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 1529e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 1530e41f4b71Sopenharmony_ci 1531e41f4b71Sopenharmony_ci**示例:** 1532e41f4b71Sopenharmony_ci 1533e41f4b71Sopenharmony_ci```ts 1534e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 1535e41f4b71Sopenharmony_ci 1536e41f4b71Sopenharmony_ciasync function example() { 1537e41f4b71Sopenharmony_ci console.info('closeDemo'); 1538e41f4b71Sopenharmony_ci try { 1539e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1540e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 1541e41f4b71Sopenharmony_ci fetchColumns: [], 1542e41f4b71Sopenharmony_ci predicates: predicates 1543e41f4b71Sopenharmony_ci }; 1544e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 1545e41f4b71Sopenharmony_ci let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 1546e41f4b71Sopenharmony_ci let fd = await asset.open('rw'); 1547e41f4b71Sopenharmony_ci console.info('file fd', fd); 1548e41f4b71Sopenharmony_ci await asset.close(fd); 1549e41f4b71Sopenharmony_ci console.info('asset close succeed.'); 1550e41f4b71Sopenharmony_ci } catch (err) { 1551e41f4b71Sopenharmony_ci console.error(`close failed, error: ${err.code}, ${err.message}`); 1552e41f4b71Sopenharmony_ci } 1553e41f4b71Sopenharmony_ci} 1554e41f4b71Sopenharmony_ci``` 1555e41f4b71Sopenharmony_ci 1556e41f4b71Sopenharmony_ci### getThumbnail 1557e41f4b71Sopenharmony_ci 1558e41f4b71Sopenharmony_cigetThumbnail(callback: AsyncCallback<image.PixelMap>): void 1559e41f4b71Sopenharmony_ci 1560e41f4b71Sopenharmony_ci获取文件的缩略图,使用callback方式返回异步结果。 1561e41f4b71Sopenharmony_ci 1562e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 1563e41f4b71Sopenharmony_ci 1564e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1565e41f4b71Sopenharmony_ci 1566e41f4b71Sopenharmony_ci**参数:** 1567e41f4b71Sopenharmony_ci 1568e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1569e41f4b71Sopenharmony_ci| -------- | ----------------------------------- | ---- | ---------------- | 1570e41f4b71Sopenharmony_ci| callback | AsyncCallback<[image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7)> | 是 | callback返回缩略图的PixelMap。 | 1571e41f4b71Sopenharmony_ci 1572e41f4b71Sopenharmony_ci**错误码:** 1573e41f4b71Sopenharmony_ci 1574e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1575e41f4b71Sopenharmony_ci 1576e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1577e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1578e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1579e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 1580e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 1581e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 1582e41f4b71Sopenharmony_ci 1583e41f4b71Sopenharmony_ci**示例:** 1584e41f4b71Sopenharmony_ci 1585e41f4b71Sopenharmony_ci```ts 1586e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 1587e41f4b71Sopenharmony_ci 1588e41f4b71Sopenharmony_ciasync function example() { 1589e41f4b71Sopenharmony_ci console.info('getThumbnailDemo'); 1590e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1591e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 1592e41f4b71Sopenharmony_ci fetchColumns: [], 1593e41f4b71Sopenharmony_ci predicates: predicates 1594e41f4b71Sopenharmony_ci }; 1595e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 1596e41f4b71Sopenharmony_ci let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 1597e41f4b71Sopenharmony_ci console.info('asset displayName = ', asset.displayName); 1598e41f4b71Sopenharmony_ci asset.getThumbnail((err, pixelMap) => { 1599e41f4b71Sopenharmony_ci if (err === undefined) { 1600e41f4b71Sopenharmony_ci console.info('getThumbnail successful ' + pixelMap); 1601e41f4b71Sopenharmony_ci } else { 1602e41f4b71Sopenharmony_ci console.error(`getThumbnail fail with error: ${err.code}, ${err.message}`); 1603e41f4b71Sopenharmony_ci } 1604e41f4b71Sopenharmony_ci }); 1605e41f4b71Sopenharmony_ci} 1606e41f4b71Sopenharmony_ci``` 1607e41f4b71Sopenharmony_ci 1608e41f4b71Sopenharmony_ci### getThumbnail 1609e41f4b71Sopenharmony_ci 1610e41f4b71Sopenharmony_cigetThumbnail(size: image.Size, callback: AsyncCallback<image.PixelMap>): void 1611e41f4b71Sopenharmony_ci 1612e41f4b71Sopenharmony_ci获取文件的缩略图,传入缩略图尺寸,使用callback方式返回异步结果。 1613e41f4b71Sopenharmony_ci 1614e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 1615e41f4b71Sopenharmony_ci 1616e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1617e41f4b71Sopenharmony_ci 1618e41f4b71Sopenharmony_ci**参数:** 1619e41f4b71Sopenharmony_ci 1620e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1621e41f4b71Sopenharmony_ci| -------- | ----------------------------------- | ---- | ---------------- | 1622e41f4b71Sopenharmony_ci| size | [image.Size](../apis-image-kit/js-apis-image.md#size) | 是 | 缩略图尺寸。 | 1623e41f4b71Sopenharmony_ci| callback | AsyncCallback<[image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7)> | 是 | callback返回缩略图的PixelMap。 | 1624e41f4b71Sopenharmony_ci 1625e41f4b71Sopenharmony_ci**错误码:** 1626e41f4b71Sopenharmony_ci 1627e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1628e41f4b71Sopenharmony_ci 1629e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1630e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1631e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1632e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 1633e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 1634e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 1635e41f4b71Sopenharmony_ci 1636e41f4b71Sopenharmony_ci**示例:** 1637e41f4b71Sopenharmony_ci 1638e41f4b71Sopenharmony_ci```ts 1639e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 1640e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 1641e41f4b71Sopenharmony_ci 1642e41f4b71Sopenharmony_ciasync function example() { 1643e41f4b71Sopenharmony_ci console.info('getThumbnailDemo'); 1644e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1645e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 1646e41f4b71Sopenharmony_ci fetchColumns: [], 1647e41f4b71Sopenharmony_ci predicates: predicates 1648e41f4b71Sopenharmony_ci }; 1649e41f4b71Sopenharmony_ci let size: image.Size = { width: 720, height: 720 }; 1650e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 1651e41f4b71Sopenharmony_ci let asset = await fetchResult.getFirstObject(); 1652e41f4b71Sopenharmony_ci console.info('asset displayName = ', asset.displayName); 1653e41f4b71Sopenharmony_ci asset.getThumbnail(size, (err, pixelMap) => { 1654e41f4b71Sopenharmony_ci if (err === undefined) { 1655e41f4b71Sopenharmony_ci console.info('getThumbnail successful ' + pixelMap); 1656e41f4b71Sopenharmony_ci } else { 1657e41f4b71Sopenharmony_ci console.error(`getThumbnail fail with error: ${err.code}, ${err.message}`); 1658e41f4b71Sopenharmony_ci } 1659e41f4b71Sopenharmony_ci }); 1660e41f4b71Sopenharmony_ci} 1661e41f4b71Sopenharmony_ci``` 1662e41f4b71Sopenharmony_ci 1663e41f4b71Sopenharmony_ci### getThumbnail 1664e41f4b71Sopenharmony_ci 1665e41f4b71Sopenharmony_cigetThumbnail(size?: image.Size): Promise<image.PixelMap> 1666e41f4b71Sopenharmony_ci 1667e41f4b71Sopenharmony_ci获取文件的缩略图,传入缩略图尺寸,使用promise方式返回异步结果。 1668e41f4b71Sopenharmony_ci 1669e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 1670e41f4b71Sopenharmony_ci 1671e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1672e41f4b71Sopenharmony_ci 1673e41f4b71Sopenharmony_ci**参数:** 1674e41f4b71Sopenharmony_ci 1675e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1676e41f4b71Sopenharmony_ci| ---- | -------------- | ---- | ----- | 1677e41f4b71Sopenharmony_ci| size | [image.Size](../apis-image-kit/js-apis-image.md#size) | 否 | 缩略图尺寸。 | 1678e41f4b71Sopenharmony_ci 1679e41f4b71Sopenharmony_ci**返回值:** 1680e41f4b71Sopenharmony_ci 1681e41f4b71Sopenharmony_ci| 类型 | 说明 | 1682e41f4b71Sopenharmony_ci| ----------------------------- | --------------------- | 1683e41f4b71Sopenharmony_ci| Promise<[image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7)> | Promise对象,返回缩略图的PixelMap。 | 1684e41f4b71Sopenharmony_ci 1685e41f4b71Sopenharmony_ci**错误码:** 1686e41f4b71Sopenharmony_ci 1687e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1688e41f4b71Sopenharmony_ci 1689e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1690e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1691e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1692e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 1693e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 1694e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 1695e41f4b71Sopenharmony_ci 1696e41f4b71Sopenharmony_ci**示例:** 1697e41f4b71Sopenharmony_ci 1698e41f4b71Sopenharmony_ci```ts 1699e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 1700e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 1701e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1702e41f4b71Sopenharmony_ci 1703e41f4b71Sopenharmony_ciasync function example() { 1704e41f4b71Sopenharmony_ci console.info('getThumbnailDemo'); 1705e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1706e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 1707e41f4b71Sopenharmony_ci fetchColumns: [], 1708e41f4b71Sopenharmony_ci predicates: predicates 1709e41f4b71Sopenharmony_ci }; 1710e41f4b71Sopenharmony_ci let size: image.Size = { width: 720, height: 720 }; 1711e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 1712e41f4b71Sopenharmony_ci let asset = await fetchResult.getFirstObject(); 1713e41f4b71Sopenharmony_ci console.info('asset displayName = ', asset.displayName); 1714e41f4b71Sopenharmony_ci asset.getThumbnail(size).then((pixelMap) => { 1715e41f4b71Sopenharmony_ci console.info('getThumbnail successful ' + pixelMap); 1716e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1717e41f4b71Sopenharmony_ci console.error(`getThumbnail fail with error: ${err.code}, ${err.message}`); 1718e41f4b71Sopenharmony_ci }); 1719e41f4b71Sopenharmony_ci} 1720e41f4b71Sopenharmony_ci``` 1721e41f4b71Sopenharmony_ci 1722e41f4b71Sopenharmony_ci## PhotoViewPicker 1723e41f4b71Sopenharmony_ci 1724e41f4b71Sopenharmony_ci图库选择器对象,用来支撑选择图片/视频等用户场景。在使用前,需要先创建PhotoViewPicker实例。 1725e41f4b71Sopenharmony_ci 1726e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1727e41f4b71Sopenharmony_ci 1728e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1729e41f4b71Sopenharmony_ci 1730e41f4b71Sopenharmony_ci**示例:** 1731e41f4b71Sopenharmony_ci 1732e41f4b71Sopenharmony_ci```ts 1733e41f4b71Sopenharmony_cilet photoPicker = new photoAccessHelper.PhotoViewPicker(); 1734e41f4b71Sopenharmony_ci``` 1735e41f4b71Sopenharmony_ci 1736e41f4b71Sopenharmony_ci### select 1737e41f4b71Sopenharmony_ci 1738e41f4b71Sopenharmony_ciselect(option?: PhotoSelectOptions) : Promise<PhotoSelectResult> 1739e41f4b71Sopenharmony_ci 1740e41f4b71Sopenharmony_ci通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用promise异步返回形式,传入可选参数PhotoSelectOptions对象,返回PhotoSelectResult对象。 1741e41f4b71Sopenharmony_ci 1742e41f4b71Sopenharmony_ci**注意**:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。 1743e41f4b71Sopenharmony_ci 1744e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1745e41f4b71Sopenharmony_ci 1746e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1747e41f4b71Sopenharmony_ci 1748e41f4b71Sopenharmony_ci**参数:** 1749e41f4b71Sopenharmony_ci 1750e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1751e41f4b71Sopenharmony_ci| ------- | ------- | ---- | -------------------------- | 1752e41f4b71Sopenharmony_ci| option | [PhotoSelectOptions](#photoselectoptions) | 否 | photoPicker选择选项,若无此参数,则默认选择媒体文件类型为图片和视频类型,默认选择媒体文件数量的最大值为50 | 1753e41f4b71Sopenharmony_ci 1754e41f4b71Sopenharmony_ci**返回值:** 1755e41f4b71Sopenharmony_ci 1756e41f4b71Sopenharmony_ci| 类型 | 说明 | 1757e41f4b71Sopenharmony_ci| ----------------------------- | :---- | 1758e41f4b71Sopenharmony_ci| Promise<[PhotoSelectResult](#photoselectresult)> | Promise对象。返回photoPicker选择后的结果集 | 1759e41f4b71Sopenharmony_ci 1760e41f4b71Sopenharmony_ci**错误码:** 1761e41f4b71Sopenharmony_ci 1762e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1763e41f4b71Sopenharmony_ci 1764e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1765e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1766e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1767e41f4b71Sopenharmony_ci| 13900042 | Unknown error. | 1768e41f4b71Sopenharmony_ci 1769e41f4b71Sopenharmony_ci**示例:** 1770e41f4b71Sopenharmony_ci 1771e41f4b71Sopenharmony_ci```ts 1772e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1773e41f4b71Sopenharmony_ciasync function example01() { 1774e41f4b71Sopenharmony_ci try { 1775e41f4b71Sopenharmony_ci let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions(); 1776e41f4b71Sopenharmony_ci PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE; 1777e41f4b71Sopenharmony_ci PhotoSelectOptions.maxSelectNumber = 5; 1778e41f4b71Sopenharmony_ci let photoPicker = new photoAccessHelper.PhotoViewPicker(); 1779e41f4b71Sopenharmony_ci photoPicker.select(PhotoSelectOptions).then((PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => { 1780e41f4b71Sopenharmony_ci console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult)); 1781e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 1782e41f4b71Sopenharmony_ci console.error(`PhotoViewPicker.select failed with err: ${err.code}, ${err.message}`); 1783e41f4b71Sopenharmony_ci }); 1784e41f4b71Sopenharmony_ci } catch (error) { 1785e41f4b71Sopenharmony_ci let err: BusinessError = error as BusinessError; 1786e41f4b71Sopenharmony_ci console.error(`PhotoViewPicker failed with err: ${err.code}, ${err.message}`); 1787e41f4b71Sopenharmony_ci } 1788e41f4b71Sopenharmony_ci} 1789e41f4b71Sopenharmony_ci``` 1790e41f4b71Sopenharmony_ci 1791e41f4b71Sopenharmony_ci### select 1792e41f4b71Sopenharmony_ci 1793e41f4b71Sopenharmony_ciselect(option: PhotoSelectOptions, callback: AsyncCallback<PhotoSelectResult>) : void 1794e41f4b71Sopenharmony_ci 1795e41f4b71Sopenharmony_ci通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,传入参数PhotoSelectOptions对象,返回PhotoSelectResult对象。 1796e41f4b71Sopenharmony_ci 1797e41f4b71Sopenharmony_ci**注意**:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。 1798e41f4b71Sopenharmony_ci 1799e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1800e41f4b71Sopenharmony_ci 1801e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1802e41f4b71Sopenharmony_ci 1803e41f4b71Sopenharmony_ci**参数:** 1804e41f4b71Sopenharmony_ci 1805e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1806e41f4b71Sopenharmony_ci| ------- | ------- | ---- | -------------------------- | 1807e41f4b71Sopenharmony_ci| option | [PhotoSelectOptions](#photoselectoptions) | 是 | photoPicker选择选项 | 1808e41f4b71Sopenharmony_ci| callback | AsyncCallback<[PhotoSelectResult](#photoselectresult)> | 是 | callback 返回photoPicker选择后的结果集 | 1809e41f4b71Sopenharmony_ci 1810e41f4b71Sopenharmony_ci**错误码:** 1811e41f4b71Sopenharmony_ci 1812e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1813e41f4b71Sopenharmony_ci 1814e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1815e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1816e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1817e41f4b71Sopenharmony_ci| 13900042 | Unknown error. | 1818e41f4b71Sopenharmony_ci 1819e41f4b71Sopenharmony_ci**示例:** 1820e41f4b71Sopenharmony_ci 1821e41f4b71Sopenharmony_ci```ts 1822e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1823e41f4b71Sopenharmony_ciasync function example02() { 1824e41f4b71Sopenharmony_ci try { 1825e41f4b71Sopenharmony_ci let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions(); 1826e41f4b71Sopenharmony_ci PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE; 1827e41f4b71Sopenharmony_ci PhotoSelectOptions.maxSelectNumber = 5; 1828e41f4b71Sopenharmony_ci let photoPicker = new photoAccessHelper.PhotoViewPicker(); 1829e41f4b71Sopenharmony_ci photoPicker.select(PhotoSelectOptions, (err: BusinessError, PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => { 1830e41f4b71Sopenharmony_ci if (err) { 1831e41f4b71Sopenharmony_ci console.error(`PhotoViewPicker.select failed with err: ${err.code}, ${err.message}`); 1832e41f4b71Sopenharmony_ci return; 1833e41f4b71Sopenharmony_ci } 1834e41f4b71Sopenharmony_ci console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult)); 1835e41f4b71Sopenharmony_ci }); 1836e41f4b71Sopenharmony_ci } catch (error) { 1837e41f4b71Sopenharmony_ci let err: BusinessError = error as BusinessError; 1838e41f4b71Sopenharmony_ci console.error(`PhotoViewPicker failed with err: ${err.code}, ${err.message}`); 1839e41f4b71Sopenharmony_ci } 1840e41f4b71Sopenharmony_ci} 1841e41f4b71Sopenharmony_ci``` 1842e41f4b71Sopenharmony_ci 1843e41f4b71Sopenharmony_ci### select 1844e41f4b71Sopenharmony_ci 1845e41f4b71Sopenharmony_ciselect(callback: AsyncCallback<PhotoSelectResult>) : void 1846e41f4b71Sopenharmony_ci 1847e41f4b71Sopenharmony_ci通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,返回PhotoSelectResult对象。 1848e41f4b71Sopenharmony_ci 1849e41f4b71Sopenharmony_ci**注意**:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。 1850e41f4b71Sopenharmony_ci 1851e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 1852e41f4b71Sopenharmony_ci 1853e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1854e41f4b71Sopenharmony_ci 1855e41f4b71Sopenharmony_ci**参数:** 1856e41f4b71Sopenharmony_ci 1857e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1858e41f4b71Sopenharmony_ci| ------- | ------- | ---- | -------------------------- | 1859e41f4b71Sopenharmony_ci| callback | AsyncCallback<[PhotoSelectResult](#photoselectresult)> | 是 | callback 返回photoPicker选择后的结果集 | 1860e41f4b71Sopenharmony_ci 1861e41f4b71Sopenharmony_ci**错误码:** 1862e41f4b71Sopenharmony_ci 1863e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1864e41f4b71Sopenharmony_ci 1865e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1866e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1867e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1868e41f4b71Sopenharmony_ci| 13900042 | Unknown error. | 1869e41f4b71Sopenharmony_ci 1870e41f4b71Sopenharmony_ci**示例:** 1871e41f4b71Sopenharmony_ci 1872e41f4b71Sopenharmony_ci```ts 1873e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1874e41f4b71Sopenharmony_ciasync function example03() { 1875e41f4b71Sopenharmony_ci try { 1876e41f4b71Sopenharmony_ci let photoPicker = new photoAccessHelper.PhotoViewPicker(); 1877e41f4b71Sopenharmony_ci photoPicker.select((err: BusinessError, PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => { 1878e41f4b71Sopenharmony_ci if (err) { 1879e41f4b71Sopenharmony_ci console.error(`PhotoViewPicker.select failed with err: ${err.code}, ${err.message}`); 1880e41f4b71Sopenharmony_ci return; 1881e41f4b71Sopenharmony_ci } 1882e41f4b71Sopenharmony_ci console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult)); 1883e41f4b71Sopenharmony_ci }); 1884e41f4b71Sopenharmony_ci } catch (error) { 1885e41f4b71Sopenharmony_ci let err: BusinessError = error as BusinessError; 1886e41f4b71Sopenharmony_ci console.error(`PhotoViewPicker failed with err: ${err.code}, ${err.message}`); 1887e41f4b71Sopenharmony_ci } 1888e41f4b71Sopenharmony_ci} 1889e41f4b71Sopenharmony_ci``` 1890e41f4b71Sopenharmony_ci 1891e41f4b71Sopenharmony_ci## FetchResult 1892e41f4b71Sopenharmony_ci 1893e41f4b71Sopenharmony_ci文件检索结果集。 1894e41f4b71Sopenharmony_ci 1895e41f4b71Sopenharmony_ci### getCount 1896e41f4b71Sopenharmony_ci 1897e41f4b71Sopenharmony_cigetCount(): number 1898e41f4b71Sopenharmony_ci 1899e41f4b71Sopenharmony_ci获取文件检索结果中的文件总数。 1900e41f4b71Sopenharmony_ci 1901e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1902e41f4b71Sopenharmony_ci 1903e41f4b71Sopenharmony_ci**返回值:** 1904e41f4b71Sopenharmony_ci 1905e41f4b71Sopenharmony_ci| 类型 | 说明 | 1906e41f4b71Sopenharmony_ci| ------ | -------- | 1907e41f4b71Sopenharmony_ci| number | 检索到的文件总数。 | 1908e41f4b71Sopenharmony_ci 1909e41f4b71Sopenharmony_ci**错误码:** 1910e41f4b71Sopenharmony_ci 1911e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1912e41f4b71Sopenharmony_ci 1913e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1914e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1915e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1916e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 1917e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 1918e41f4b71Sopenharmony_ci 1919e41f4b71Sopenharmony_ci**示例:** 1920e41f4b71Sopenharmony_ci 1921e41f4b71Sopenharmony_ci```ts 1922e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 1923e41f4b71Sopenharmony_ci 1924e41f4b71Sopenharmony_ciasync function example() { 1925e41f4b71Sopenharmony_ci console.info('getCountDemo'); 1926e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1927e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 1928e41f4b71Sopenharmony_ci fetchColumns: [], 1929e41f4b71Sopenharmony_ci predicates: predicates 1930e41f4b71Sopenharmony_ci }; 1931e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 1932e41f4b71Sopenharmony_ci let fetchCount = fetchResult.getCount(); 1933e41f4b71Sopenharmony_ci console.info('fetchCount = ', fetchCount); 1934e41f4b71Sopenharmony_ci} 1935e41f4b71Sopenharmony_ci``` 1936e41f4b71Sopenharmony_ci 1937e41f4b71Sopenharmony_ci### isAfterLast 1938e41f4b71Sopenharmony_ci 1939e41f4b71Sopenharmony_ciisAfterLast(): boolean 1940e41f4b71Sopenharmony_ci 1941e41f4b71Sopenharmony_ci检查结果集是否指向最后一行。 1942e41f4b71Sopenharmony_ci 1943e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1944e41f4b71Sopenharmony_ci 1945e41f4b71Sopenharmony_ci**返回值:** 1946e41f4b71Sopenharmony_ci 1947e41f4b71Sopenharmony_ci| 类型 | 说明 | 1948e41f4b71Sopenharmony_ci| ------- | ---------------------------------- | 1949e41f4b71Sopenharmony_ci| boolean | 当读到最后一条记录后,后续没有记录返回true,否则返回false。 | 1950e41f4b71Sopenharmony_ci 1951e41f4b71Sopenharmony_ci**错误码:** 1952e41f4b71Sopenharmony_ci 1953e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1954e41f4b71Sopenharmony_ci 1955e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1956e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1957e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1958e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 1959e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 1960e41f4b71Sopenharmony_ci 1961e41f4b71Sopenharmony_ci**示例:** 1962e41f4b71Sopenharmony_ci 1963e41f4b71Sopenharmony_ci```ts 1964e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 1965e41f4b71Sopenharmony_ci 1966e41f4b71Sopenharmony_ciasync function example() { 1967e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1968e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 1969e41f4b71Sopenharmony_ci fetchColumns: [], 1970e41f4b71Sopenharmony_ci predicates: predicates 1971e41f4b71Sopenharmony_ci }; 1972e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 1973e41f4b71Sopenharmony_ci let fetchCount = fetchResult.getCount(); 1974e41f4b71Sopenharmony_ci console.info('count:' + fetchCount); 1975e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getLastObject(); 1976e41f4b71Sopenharmony_ci if (fetchResult.isAfterLast()) { 1977e41f4b71Sopenharmony_ci console.info('photoAsset isAfterLast displayName = ', photoAsset.displayName); 1978e41f4b71Sopenharmony_ci } else { 1979e41f4b71Sopenharmony_ci console.info('photoAsset not isAfterLast.'); 1980e41f4b71Sopenharmony_ci } 1981e41f4b71Sopenharmony_ci} 1982e41f4b71Sopenharmony_ci``` 1983e41f4b71Sopenharmony_ci 1984e41f4b71Sopenharmony_ci### close 1985e41f4b71Sopenharmony_ci 1986e41f4b71Sopenharmony_ciclose(): void 1987e41f4b71Sopenharmony_ci 1988e41f4b71Sopenharmony_ci释放FetchResult实例并使其失效。无法调用其他方法。 1989e41f4b71Sopenharmony_ci 1990e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1991e41f4b71Sopenharmony_ci 1992e41f4b71Sopenharmony_ci**错误码:** 1993e41f4b71Sopenharmony_ci 1994e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1995e41f4b71Sopenharmony_ci 1996e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1997e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 1998e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1999e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2000e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2001e41f4b71Sopenharmony_ci 2002e41f4b71Sopenharmony_ci**示例:** 2003e41f4b71Sopenharmony_ci 2004e41f4b71Sopenharmony_ci```ts 2005e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2006e41f4b71Sopenharmony_ci 2007e41f4b71Sopenharmony_ciasync function example() { 2008e41f4b71Sopenharmony_ci console.info('fetchResultCloseDemo'); 2009e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2010e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 2011e41f4b71Sopenharmony_ci fetchColumns: [], 2012e41f4b71Sopenharmony_ci predicates: predicates 2013e41f4b71Sopenharmony_ci }; 2014e41f4b71Sopenharmony_ci try { 2015e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 2016e41f4b71Sopenharmony_ci fetchResult.close(); 2017e41f4b71Sopenharmony_ci console.info('close succeed.'); 2018e41f4b71Sopenharmony_ci } catch (err) { 2019e41f4b71Sopenharmony_ci console.error(`close fail. error: ${err.code}, ${err.message}`); 2020e41f4b71Sopenharmony_ci } 2021e41f4b71Sopenharmony_ci} 2022e41f4b71Sopenharmony_ci``` 2023e41f4b71Sopenharmony_ci 2024e41f4b71Sopenharmony_ci### getFirstObject 2025e41f4b71Sopenharmony_ci 2026e41f4b71Sopenharmony_cigetFirstObject(callback: AsyncCallback<T>): void 2027e41f4b71Sopenharmony_ci 2028e41f4b71Sopenharmony_ci获取文件检索结果中的第一个文件资产。此方法使用callback形式返回结果。 2029e41f4b71Sopenharmony_ci 2030e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2031e41f4b71Sopenharmony_ci 2032e41f4b71Sopenharmony_ci**参数:** 2033e41f4b71Sopenharmony_ci 2034e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2035e41f4b71Sopenharmony_ci| -------- | --------------------------------------------- | ---- | ------------------------------------------- | 2036e41f4b71Sopenharmony_ci| callback | AsyncCallback<T> | 是 | 异步获取结果集中的第一个完成后的回调。 | 2037e41f4b71Sopenharmony_ci 2038e41f4b71Sopenharmony_ci**错误码:** 2039e41f4b71Sopenharmony_ci 2040e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2041e41f4b71Sopenharmony_ci 2042e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2043e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2044e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2045e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2046e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2047e41f4b71Sopenharmony_ci 2048e41f4b71Sopenharmony_ci**示例:** 2049e41f4b71Sopenharmony_ci 2050e41f4b71Sopenharmony_ci```ts 2051e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2052e41f4b71Sopenharmony_ci 2053e41f4b71Sopenharmony_ciasync function example() { 2054e41f4b71Sopenharmony_ci console.info('getFirstObjectDemo'); 2055e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2056e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 2057e41f4b71Sopenharmony_ci fetchColumns: [], 2058e41f4b71Sopenharmony_ci predicates: predicates 2059e41f4b71Sopenharmony_ci }; 2060e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 2061e41f4b71Sopenharmony_ci fetchResult.getFirstObject((err, photoAsset) => { 2062e41f4b71Sopenharmony_ci if (photoAsset !== undefined) { 2063e41f4b71Sopenharmony_ci console.info('photoAsset displayName: ', photoAsset.displayName); 2064e41f4b71Sopenharmony_ci } else { 2065e41f4b71Sopenharmony_ci console.error(`photoAsset failed with err:${err.code}, ${err.message}`); 2066e41f4b71Sopenharmony_ci } 2067e41f4b71Sopenharmony_ci }); 2068e41f4b71Sopenharmony_ci} 2069e41f4b71Sopenharmony_ci``` 2070e41f4b71Sopenharmony_ci 2071e41f4b71Sopenharmony_ci### getFirstObject 2072e41f4b71Sopenharmony_ci 2073e41f4b71Sopenharmony_cigetFirstObject(): Promise<T> 2074e41f4b71Sopenharmony_ci 2075e41f4b71Sopenharmony_ci获取文件检索结果中的第一个文件资产。此方法使用promise方式来异步返回。 2076e41f4b71Sopenharmony_ci 2077e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2078e41f4b71Sopenharmony_ci 2079e41f4b71Sopenharmony_ci**返回值:** 2080e41f4b71Sopenharmony_ci 2081e41f4b71Sopenharmony_ci| 类型 | 说明 | 2082e41f4b71Sopenharmony_ci| --------------------------------------- | -------------------------- | 2083e41f4b71Sopenharmony_ci| Promise<T> | Promise对象,返回结果集中第一个对象。 | 2084e41f4b71Sopenharmony_ci 2085e41f4b71Sopenharmony_ci**错误码:** 2086e41f4b71Sopenharmony_ci 2087e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2088e41f4b71Sopenharmony_ci 2089e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2090e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2091e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2092e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2093e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2094e41f4b71Sopenharmony_ci 2095e41f4b71Sopenharmony_ci**示例:** 2096e41f4b71Sopenharmony_ci 2097e41f4b71Sopenharmony_ci```ts 2098e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2099e41f4b71Sopenharmony_ci 2100e41f4b71Sopenharmony_ciasync function example() { 2101e41f4b71Sopenharmony_ci console.info('getFirstObjectDemo'); 2102e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2103e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 2104e41f4b71Sopenharmony_ci fetchColumns: [], 2105e41f4b71Sopenharmony_ci predicates: predicates 2106e41f4b71Sopenharmony_ci }; 2107e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 2108e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2109e41f4b71Sopenharmony_ci console.info('photoAsset displayName: ', photoAsset.displayName); 2110e41f4b71Sopenharmony_ci} 2111e41f4b71Sopenharmony_ci``` 2112e41f4b71Sopenharmony_ci 2113e41f4b71Sopenharmony_ci### getNextObject 2114e41f4b71Sopenharmony_ci 2115e41f4b71Sopenharmony_cigetNextObject(callback: AsyncCallback<T>): void 2116e41f4b71Sopenharmony_ci 2117e41f4b71Sopenharmony_ci获取文件检索结果中的下一个文件资产。此方法使用callback形式返回结果。 2118e41f4b71Sopenharmony_ci在调用此方法之前,必须使用[isAfterLast()](#isafterlast)来检查当前位置是否为最后一行。 2119e41f4b71Sopenharmony_ci 2120e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2121e41f4b71Sopenharmony_ci 2122e41f4b71Sopenharmony_ci**参数:** 2123e41f4b71Sopenharmony_ci 2124e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2125e41f4b71Sopenharmony_ci| --------- | --------------------------------------------- | ---- | ----------------------------------------- | 2126e41f4b71Sopenharmony_ci| callback | AsyncCallback<T> | 是 | 异步返回结果集中下一个之后的回调。 | 2127e41f4b71Sopenharmony_ci 2128e41f4b71Sopenharmony_ci**错误码:** 2129e41f4b71Sopenharmony_ci 2130e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2131e41f4b71Sopenharmony_ci 2132e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2133e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2134e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2135e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2136e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2137e41f4b71Sopenharmony_ci 2138e41f4b71Sopenharmony_ci**示例:** 2139e41f4b71Sopenharmony_ci 2140e41f4b71Sopenharmony_ci```ts 2141e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2142e41f4b71Sopenharmony_ci 2143e41f4b71Sopenharmony_ciasync function example() { 2144e41f4b71Sopenharmony_ci console.info('getNextObjectDemo'); 2145e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2146e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 2147e41f4b71Sopenharmony_ci fetchColumns: [], 2148e41f4b71Sopenharmony_ci predicates: predicates 2149e41f4b71Sopenharmony_ci }; 2150e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 2151e41f4b71Sopenharmony_ci await fetchResult.getFirstObject(); 2152e41f4b71Sopenharmony_ci if (!fetchResult.isAfterLast()) { 2153e41f4b71Sopenharmony_ci fetchResult.getNextObject((err, photoAsset) => { 2154e41f4b71Sopenharmony_ci if (photoAsset !== undefined) { 2155e41f4b71Sopenharmony_ci console.info('photoAsset displayName: ', photoAsset.displayName); 2156e41f4b71Sopenharmony_ci } else { 2157e41f4b71Sopenharmony_ci console.error(`photoAsset failed with err: ${err.code}, ${err.message}`); 2158e41f4b71Sopenharmony_ci } 2159e41f4b71Sopenharmony_ci }); 2160e41f4b71Sopenharmony_ci } 2161e41f4b71Sopenharmony_ci} 2162e41f4b71Sopenharmony_ci``` 2163e41f4b71Sopenharmony_ci 2164e41f4b71Sopenharmony_ci### getNextObject 2165e41f4b71Sopenharmony_ci 2166e41f4b71Sopenharmony_cigetNextObject(): Promise<T> 2167e41f4b71Sopenharmony_ci 2168e41f4b71Sopenharmony_ci获取文件检索结果中的下一个文件资产。此方法使用promise方式来异步返回。 2169e41f4b71Sopenharmony_ci在调用此方法之前,必须使用[isAfterLast()](#isafterlast)来检查当前位置是否为最后一行。 2170e41f4b71Sopenharmony_ci 2171e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2172e41f4b71Sopenharmony_ci 2173e41f4b71Sopenharmony_ci**返回值:** 2174e41f4b71Sopenharmony_ci 2175e41f4b71Sopenharmony_ci| 类型 | 说明 | 2176e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 2177e41f4b71Sopenharmony_ci| Promise<T> | Promise对象,返回结果集中下一个对象。 | 2178e41f4b71Sopenharmony_ci 2179e41f4b71Sopenharmony_ci**错误码:** 2180e41f4b71Sopenharmony_ci 2181e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2182e41f4b71Sopenharmony_ci 2183e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2184e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2185e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2186e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2187e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2188e41f4b71Sopenharmony_ci 2189e41f4b71Sopenharmony_ci**示例:** 2190e41f4b71Sopenharmony_ci 2191e41f4b71Sopenharmony_ci```ts 2192e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2193e41f4b71Sopenharmony_ci 2194e41f4b71Sopenharmony_ciasync function example() { 2195e41f4b71Sopenharmony_ci console.info('getNextObjectDemo'); 2196e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2197e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 2198e41f4b71Sopenharmony_ci fetchColumns: [], 2199e41f4b71Sopenharmony_ci predicates: predicates 2200e41f4b71Sopenharmony_ci }; 2201e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 2202e41f4b71Sopenharmony_ci await fetchResult.getFirstObject(); 2203e41f4b71Sopenharmony_ci if (!fetchResult.isAfterLast()) { 2204e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getNextObject(); 2205e41f4b71Sopenharmony_ci console.info('photoAsset displayName: ', photoAsset.displayName); 2206e41f4b71Sopenharmony_ci } 2207e41f4b71Sopenharmony_ci} 2208e41f4b71Sopenharmony_ci``` 2209e41f4b71Sopenharmony_ci 2210e41f4b71Sopenharmony_ci### getLastObject 2211e41f4b71Sopenharmony_ci 2212e41f4b71Sopenharmony_cigetLastObject(callback: AsyncCallback<T>): void 2213e41f4b71Sopenharmony_ci 2214e41f4b71Sopenharmony_ci获取文件检索结果中的最后一个文件资产。此方法使用callback回调来返回。 2215e41f4b71Sopenharmony_ci 2216e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2217e41f4b71Sopenharmony_ci 2218e41f4b71Sopenharmony_ci**参数:** 2219e41f4b71Sopenharmony_ci 2220e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2221e41f4b71Sopenharmony_ci| -------- | --------------------------------------------- | ---- | --------------------------- | 2222e41f4b71Sopenharmony_ci| callback | AsyncCallback<T> | 是 | 异步返回结果集中最后一个的回调。 | 2223e41f4b71Sopenharmony_ci 2224e41f4b71Sopenharmony_ci**错误码:** 2225e41f4b71Sopenharmony_ci 2226e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2227e41f4b71Sopenharmony_ci 2228e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2229e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2230e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2231e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2232e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2233e41f4b71Sopenharmony_ci 2234e41f4b71Sopenharmony_ci**示例:** 2235e41f4b71Sopenharmony_ci 2236e41f4b71Sopenharmony_ci```ts 2237e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2238e41f4b71Sopenharmony_ci 2239e41f4b71Sopenharmony_ciasync function example() { 2240e41f4b71Sopenharmony_ci console.info('getLastObjectDemo'); 2241e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2242e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 2243e41f4b71Sopenharmony_ci fetchColumns: [], 2244e41f4b71Sopenharmony_ci predicates: predicates 2245e41f4b71Sopenharmony_ci }; 2246e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 2247e41f4b71Sopenharmony_ci fetchResult.getLastObject((err, photoAsset) => { 2248e41f4b71Sopenharmony_ci if (photoAsset !== undefined) { 2249e41f4b71Sopenharmony_ci console.info('photoAsset displayName: ', photoAsset.displayName); 2250e41f4b71Sopenharmony_ci } else { 2251e41f4b71Sopenharmony_ci console.error(`photoAsset failed with err: ${err.code}, ${err.message}`); 2252e41f4b71Sopenharmony_ci } 2253e41f4b71Sopenharmony_ci }); 2254e41f4b71Sopenharmony_ci} 2255e41f4b71Sopenharmony_ci``` 2256e41f4b71Sopenharmony_ci 2257e41f4b71Sopenharmony_ci### getLastObject 2258e41f4b71Sopenharmony_ci 2259e41f4b71Sopenharmony_cigetLastObject(): Promise<T> 2260e41f4b71Sopenharmony_ci 2261e41f4b71Sopenharmony_ci获取文件检索结果中的最后一个文件资产。此方法使用Promise方式来返回。 2262e41f4b71Sopenharmony_ci 2263e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2264e41f4b71Sopenharmony_ci 2265e41f4b71Sopenharmony_ci**返回值:** 2266e41f4b71Sopenharmony_ci 2267e41f4b71Sopenharmony_ci| 类型 | 说明 | 2268e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 2269e41f4b71Sopenharmony_ci| Promise<T> | Promise对象,返回结果集中最后一个对象。 | 2270e41f4b71Sopenharmony_ci 2271e41f4b71Sopenharmony_ci**错误码:** 2272e41f4b71Sopenharmony_ci 2273e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2274e41f4b71Sopenharmony_ci 2275e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2276e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2277e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2278e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2279e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2280e41f4b71Sopenharmony_ci 2281e41f4b71Sopenharmony_ci**示例:** 2282e41f4b71Sopenharmony_ci 2283e41f4b71Sopenharmony_ci```ts 2284e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2285e41f4b71Sopenharmony_ci 2286e41f4b71Sopenharmony_ciasync function example() { 2287e41f4b71Sopenharmony_ci console.info('getLastObjectDemo'); 2288e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2289e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 2290e41f4b71Sopenharmony_ci fetchColumns: [], 2291e41f4b71Sopenharmony_ci predicates: predicates 2292e41f4b71Sopenharmony_ci }; 2293e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 2294e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getLastObject(); 2295e41f4b71Sopenharmony_ci console.info('photoAsset displayName: ', photoAsset.displayName); 2296e41f4b71Sopenharmony_ci} 2297e41f4b71Sopenharmony_ci``` 2298e41f4b71Sopenharmony_ci 2299e41f4b71Sopenharmony_ci### getObjectByPosition 2300e41f4b71Sopenharmony_ci 2301e41f4b71Sopenharmony_cigetObjectByPosition(index: number, callback: AsyncCallback<T>): void 2302e41f4b71Sopenharmony_ci 2303e41f4b71Sopenharmony_ci获取文件检索结果中具有指定索引的文件资产。此方法使用callback来返回。 2304e41f4b71Sopenharmony_ci 2305e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2306e41f4b71Sopenharmony_ci 2307e41f4b71Sopenharmony_ci**参数:** 2308e41f4b71Sopenharmony_ci 2309e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2310e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | ---- | ------------------ | 2311e41f4b71Sopenharmony_ci| index | number | 是 | 要获取的文件的索引,从0开始。 | 2312e41f4b71Sopenharmony_ci| callback | AsyncCallback<T> | 是 | 异步返回指定索引的文件资产的回调。 | 2313e41f4b71Sopenharmony_ci 2314e41f4b71Sopenharmony_ci**错误码:** 2315e41f4b71Sopenharmony_ci 2316e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2317e41f4b71Sopenharmony_ci 2318e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2319e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2320e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 2321e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2322e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2323e41f4b71Sopenharmony_ci 2324e41f4b71Sopenharmony_ci**示例:** 2325e41f4b71Sopenharmony_ci 2326e41f4b71Sopenharmony_ci```ts 2327e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2328e41f4b71Sopenharmony_ci 2329e41f4b71Sopenharmony_ciasync function example() { 2330e41f4b71Sopenharmony_ci console.info('getObjectByPositionDemo'); 2331e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2332e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 2333e41f4b71Sopenharmony_ci fetchColumns: [], 2334e41f4b71Sopenharmony_ci predicates: predicates 2335e41f4b71Sopenharmony_ci }; 2336e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 2337e41f4b71Sopenharmony_ci fetchResult.getObjectByPosition(0, (err, photoAsset) => { 2338e41f4b71Sopenharmony_ci if (photoAsset !== undefined) { 2339e41f4b71Sopenharmony_ci console.info('photoAsset displayName: ', photoAsset.displayName); 2340e41f4b71Sopenharmony_ci } else { 2341e41f4b71Sopenharmony_ci console.error(`photoAsset failed with err: ${err.code}, ${err.message}`); 2342e41f4b71Sopenharmony_ci } 2343e41f4b71Sopenharmony_ci }); 2344e41f4b71Sopenharmony_ci} 2345e41f4b71Sopenharmony_ci``` 2346e41f4b71Sopenharmony_ci 2347e41f4b71Sopenharmony_ci### getObjectByPosition 2348e41f4b71Sopenharmony_ci 2349e41f4b71Sopenharmony_cigetObjectByPosition(index: number): Promise<T> 2350e41f4b71Sopenharmony_ci 2351e41f4b71Sopenharmony_ci获取文件检索结果中具有指定索引的文件资产。此方法使用Promise形式返回文件Asset。 2352e41f4b71Sopenharmony_ci 2353e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2354e41f4b71Sopenharmony_ci 2355e41f4b71Sopenharmony_ci**参数:** 2356e41f4b71Sopenharmony_ci 2357e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2358e41f4b71Sopenharmony_ci| ----- | ------ | ---- | -------------- | 2359e41f4b71Sopenharmony_ci| index | number | 是 | 要获取的文件的索引,从0开始。 | 2360e41f4b71Sopenharmony_ci 2361e41f4b71Sopenharmony_ci**返回值:** 2362e41f4b71Sopenharmony_ci 2363e41f4b71Sopenharmony_ci| 类型 | 说明 | 2364e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 2365e41f4b71Sopenharmony_ci| Promise<T> | Promise对象,返回结果集中指定索引的一个对象。 | 2366e41f4b71Sopenharmony_ci 2367e41f4b71Sopenharmony_ci**错误码:** 2368e41f4b71Sopenharmony_ci 2369e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2370e41f4b71Sopenharmony_ci 2371e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2372e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2373e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 2374e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2375e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2376e41f4b71Sopenharmony_ci 2377e41f4b71Sopenharmony_ci**示例:** 2378e41f4b71Sopenharmony_ci 2379e41f4b71Sopenharmony_ci```ts 2380e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2381e41f4b71Sopenharmony_ci 2382e41f4b71Sopenharmony_ciasync function example() { 2383e41f4b71Sopenharmony_ci console.info('getObjectByPositionDemo'); 2384e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2385e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 2386e41f4b71Sopenharmony_ci fetchColumns: [], 2387e41f4b71Sopenharmony_ci predicates: predicates 2388e41f4b71Sopenharmony_ci }; 2389e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 2390e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getObjectByPosition(0); 2391e41f4b71Sopenharmony_ci console.info('photoAsset displayName: ', photoAsset.displayName); 2392e41f4b71Sopenharmony_ci} 2393e41f4b71Sopenharmony_ci``` 2394e41f4b71Sopenharmony_ci 2395e41f4b71Sopenharmony_ci### getAllObjects 2396e41f4b71Sopenharmony_ci 2397e41f4b71Sopenharmony_cigetAllObjects(callback: AsyncCallback<Array<T>>): void 2398e41f4b71Sopenharmony_ci 2399e41f4b71Sopenharmony_ci获取文件检索结果中的所有文件资产。此方法使用callback形式返回结果。 2400e41f4b71Sopenharmony_ci 2401e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2402e41f4b71Sopenharmony_ci 2403e41f4b71Sopenharmony_ci**参数:** 2404e41f4b71Sopenharmony_ci 2405e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2406e41f4b71Sopenharmony_ci| -------- | --------------------------------------------- | ---- | ------------------------------------------- | 2407e41f4b71Sopenharmony_ci| callback | AsyncCallback<Array<T>> | 是 | 异步获取结果集中的所有文件资产完成后的回调。 | 2408e41f4b71Sopenharmony_ci 2409e41f4b71Sopenharmony_ci**错误码:** 2410e41f4b71Sopenharmony_ci 2411e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2412e41f4b71Sopenharmony_ci 2413e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2414e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2415e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2416e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2417e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2418e41f4b71Sopenharmony_ci 2419e41f4b71Sopenharmony_ci**示例:** 2420e41f4b71Sopenharmony_ci 2421e41f4b71Sopenharmony_ci```ts 2422e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2423e41f4b71Sopenharmony_ci 2424e41f4b71Sopenharmony_ciasync function example() { 2425e41f4b71Sopenharmony_ci console.info('getAllObjectDemo'); 2426e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2427e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 2428e41f4b71Sopenharmony_ci fetchColumns: [], 2429e41f4b71Sopenharmony_ci predicates: predicates 2430e41f4b71Sopenharmony_ci }; 2431e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 2432e41f4b71Sopenharmony_ci fetchResult.getAllObjects((err, photoAssetList) => { 2433e41f4b71Sopenharmony_ci if (photoAssetList !== undefined) { 2434e41f4b71Sopenharmony_ci console.info('photoAssetList length: ', photoAssetList.length); 2435e41f4b71Sopenharmony_ci } else { 2436e41f4b71Sopenharmony_ci console.error(`photoAssetList failed with err:${err.code}, ${err.message}`); 2437e41f4b71Sopenharmony_ci } 2438e41f4b71Sopenharmony_ci }); 2439e41f4b71Sopenharmony_ci} 2440e41f4b71Sopenharmony_ci``` 2441e41f4b71Sopenharmony_ci 2442e41f4b71Sopenharmony_ci### getAllObjects 2443e41f4b71Sopenharmony_ci 2444e41f4b71Sopenharmony_cigetAllObjects(): Promise<Array<T>> 2445e41f4b71Sopenharmony_ci 2446e41f4b71Sopenharmony_ci获取文件检索结果中的所有文件资产。此方法使用promise方式来异步返回。 2447e41f4b71Sopenharmony_ci 2448e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2449e41f4b71Sopenharmony_ci 2450e41f4b71Sopenharmony_ci**返回值:** 2451e41f4b71Sopenharmony_ci 2452e41f4b71Sopenharmony_ci| 类型 | 说明 | 2453e41f4b71Sopenharmony_ci| --------------------------------------- | -------------------------- | 2454e41f4b71Sopenharmony_ci| Promise<Array<T>> | Promise对象,返回结果集中所有文件资产数组。 | 2455e41f4b71Sopenharmony_ci 2456e41f4b71Sopenharmony_ci**错误码:** 2457e41f4b71Sopenharmony_ci 2458e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2459e41f4b71Sopenharmony_ci 2460e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2461e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2462e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2463e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2464e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2465e41f4b71Sopenharmony_ci 2466e41f4b71Sopenharmony_ci**示例:** 2467e41f4b71Sopenharmony_ci 2468e41f4b71Sopenharmony_ci```ts 2469e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2470e41f4b71Sopenharmony_ci 2471e41f4b71Sopenharmony_ciasync function example() { 2472e41f4b71Sopenharmony_ci console.info('getAllObjectDemo'); 2473e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2474e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 2475e41f4b71Sopenharmony_ci fetchColumns: [], 2476e41f4b71Sopenharmony_ci predicates: predicates 2477e41f4b71Sopenharmony_ci }; 2478e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 2479e41f4b71Sopenharmony_ci let photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects(); 2480e41f4b71Sopenharmony_ci console.info('photoAssetList length: ', photoAssetList.length); 2481e41f4b71Sopenharmony_ci} 2482e41f4b71Sopenharmony_ci``` 2483e41f4b71Sopenharmony_ci 2484e41f4b71Sopenharmony_ci## Album 2485e41f4b71Sopenharmony_ci 2486e41f4b71Sopenharmony_ci实体相册 2487e41f4b71Sopenharmony_ci 2488e41f4b71Sopenharmony_ci### 属性 2489e41f4b71Sopenharmony_ci 2490e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2491e41f4b71Sopenharmony_ci 2492e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 2493e41f4b71Sopenharmony_ci| ------------ | ------ | ---- | ---- | ------- | 2494e41f4b71Sopenharmony_ci| albumType | [AlbumType](#albumtype) | 是 | 否 | 相册类型。 | 2495e41f4b71Sopenharmony_ci| albumSubtype | [AlbumSubtype](#albumsubtype) | 是 | 否 | 相册子类型。 | 2496e41f4b71Sopenharmony_ci| albumName | string | 是 | 用户相册可写,预置相册不可写 | 相册名称。 | 2497e41f4b71Sopenharmony_ci| albumUri | string | 是 | 否 | 相册Uri。 | 2498e41f4b71Sopenharmony_ci| count | number | 是 | 否 | 相册中文件数量。 | 2499e41f4b71Sopenharmony_ci| coverUri | string | 是 | 否 | 封面文件Uri。 | 2500e41f4b71Sopenharmony_ci| imageCount<sup>11+</sup> | number | 是 | 否 | 相册中图片数量。| 2501e41f4b71Sopenharmony_ci| videoCount<sup>11+</sup> | number | 是 | 否 | 相册中视频数量。| 2502e41f4b71Sopenharmony_ci 2503e41f4b71Sopenharmony_ci### getAssets 2504e41f4b71Sopenharmony_ci 2505e41f4b71Sopenharmony_cigetAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<PhotoAsset>>): void 2506e41f4b71Sopenharmony_ci 2507e41f4b71Sopenharmony_ci获取相册中的文件。该方法使用callback形式来返回文件。 2508e41f4b71Sopenharmony_ci 2509e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 2510e41f4b71Sopenharmony_ci 2511e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2512e41f4b71Sopenharmony_ci 2513e41f4b71Sopenharmony_ci**参数:** 2514e41f4b71Sopenharmony_ci 2515e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2516e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------- | 2517e41f4b71Sopenharmony_ci| options | [FetchOptions](#fetchoptions) | 是 | 检索选项。 | 2518e41f4b71Sopenharmony_ci| callback | AsyncCallback<[FetchResult](#fetchresult)<[PhotoAsset](#photoasset)>> | 是 | callback返回图片和视频数据结果集。 | 2519e41f4b71Sopenharmony_ci 2520e41f4b71Sopenharmony_ci**错误码:** 2521e41f4b71Sopenharmony_ci 2522e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2523e41f4b71Sopenharmony_ci 2524e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2525e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2526e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 2527e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 2528e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2529e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2530e41f4b71Sopenharmony_ci 2531e41f4b71Sopenharmony_ci**示例:** 2532e41f4b71Sopenharmony_ci 2533e41f4b71Sopenharmony_ci```ts 2534e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2535e41f4b71Sopenharmony_ci 2536e41f4b71Sopenharmony_ciasync function example() { 2537e41f4b71Sopenharmony_ci console.info('albumGetAssetsDemoCallback'); 2538e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2539e41f4b71Sopenharmony_ci let albumFetchOptions: photoAccessHelper.FetchOptions = { 2540e41f4b71Sopenharmony_ci fetchColumns: [], 2541e41f4b71Sopenharmony_ci predicates: predicates 2542e41f4b71Sopenharmony_ci }; 2543e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 2544e41f4b71Sopenharmony_ci fetchColumns: [], 2545e41f4b71Sopenharmony_ci predicates: predicates 2546e41f4b71Sopenharmony_ci }; 2547e41f4b71Sopenharmony_ci let albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, albumFetchOptions); 2548e41f4b71Sopenharmony_ci let album: photoAccessHelper.Album = await albumList.getFirstObject(); 2549e41f4b71Sopenharmony_ci album.getAssets(fetchOption, (err, albumFetchResult) => { 2550e41f4b71Sopenharmony_ci if (albumFetchResult !== undefined) { 2551e41f4b71Sopenharmony_ci console.info('album getAssets successfully, getCount: ' + albumFetchResult.getCount()); 2552e41f4b71Sopenharmony_ci } else { 2553e41f4b71Sopenharmony_ci console.error(`album getAssets failed with error: ${err.code}, ${err.message}`); 2554e41f4b71Sopenharmony_ci } 2555e41f4b71Sopenharmony_ci }); 2556e41f4b71Sopenharmony_ci} 2557e41f4b71Sopenharmony_ci``` 2558e41f4b71Sopenharmony_ci 2559e41f4b71Sopenharmony_ci### getAssets 2560e41f4b71Sopenharmony_ci 2561e41f4b71Sopenharmony_cigetAssets(options: FetchOptions): Promise<FetchResult<PhotoAsset>> 2562e41f4b71Sopenharmony_ci 2563e41f4b71Sopenharmony_ci获取相册中的文件。该方法使用Promise来返回文件。 2564e41f4b71Sopenharmony_ci 2565e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 2566e41f4b71Sopenharmony_ci 2567e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2568e41f4b71Sopenharmony_ci 2569e41f4b71Sopenharmony_ci**参数:** 2570e41f4b71Sopenharmony_ci 2571e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2572e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------- | 2573e41f4b71Sopenharmony_ci| options | [FetchOptions](#fetchoptions) | 是 | 检索选项。 | 2574e41f4b71Sopenharmony_ci 2575e41f4b71Sopenharmony_ci**返回值:** 2576e41f4b71Sopenharmony_ci 2577e41f4b71Sopenharmony_ci| 类型 | 说明 | 2578e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 2579e41f4b71Sopenharmony_ci| Promise<[FetchResult](#fetchresult)<[PhotoAsset](#photoasset)>> | Promise对象,返回图片和视频数据结果集。 | 2580e41f4b71Sopenharmony_ci 2581e41f4b71Sopenharmony_ci**错误码:** 2582e41f4b71Sopenharmony_ci 2583e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2584e41f4b71Sopenharmony_ci 2585e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2586e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2587e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 2588e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 2589e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2590e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2591e41f4b71Sopenharmony_ci 2592e41f4b71Sopenharmony_ci**示例:** 2593e41f4b71Sopenharmony_ci 2594e41f4b71Sopenharmony_ci```ts 2595e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2596e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2597e41f4b71Sopenharmony_ci 2598e41f4b71Sopenharmony_ciasync function example() { 2599e41f4b71Sopenharmony_ci console.info('albumGetAssetsDemoPromise'); 2600e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2601e41f4b71Sopenharmony_ci let albumFetchOptions: photoAccessHelper.FetchOptions = { 2602e41f4b71Sopenharmony_ci fetchColumns: [], 2603e41f4b71Sopenharmony_ci predicates: predicates 2604e41f4b71Sopenharmony_ci }; 2605e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 2606e41f4b71Sopenharmony_ci fetchColumns: [], 2607e41f4b71Sopenharmony_ci predicates: predicates 2608e41f4b71Sopenharmony_ci }; 2609e41f4b71Sopenharmony_ci let albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, albumFetchOptions); 2610e41f4b71Sopenharmony_ci let album: photoAccessHelper.Album = await albumList.getFirstObject(); 2611e41f4b71Sopenharmony_ci album.getAssets(fetchOption).then((albumFetchResult) => { 2612e41f4b71Sopenharmony_ci console.info('album getAssets successfully, getCount: ' + albumFetchResult.getCount()); 2613e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2614e41f4b71Sopenharmony_ci console.error(`album getAssets failed with error: ${err.code}, ${err.message}`); 2615e41f4b71Sopenharmony_ci }); 2616e41f4b71Sopenharmony_ci} 2617e41f4b71Sopenharmony_ci``` 2618e41f4b71Sopenharmony_ci 2619e41f4b71Sopenharmony_ci### commitModify 2620e41f4b71Sopenharmony_ci 2621e41f4b71Sopenharmony_cicommitModify(callback: AsyncCallback<void>): void 2622e41f4b71Sopenharmony_ci 2623e41f4b71Sopenharmony_ci更新相册属性修改到数据库中。该方法使用callback形式来返回结果。 2624e41f4b71Sopenharmony_ci 2625e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2626e41f4b71Sopenharmony_ci 2627e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2628e41f4b71Sopenharmony_ci 2629e41f4b71Sopenharmony_ci**参数:** 2630e41f4b71Sopenharmony_ci 2631e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2632e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------- | 2633e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | callback返回void。 | 2634e41f4b71Sopenharmony_ci 2635e41f4b71Sopenharmony_ci**错误码:** 2636e41f4b71Sopenharmony_ci 2637e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2638e41f4b71Sopenharmony_ci 2639e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2640e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2641e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2642e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 2643e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2644e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2645e41f4b71Sopenharmony_ci 2646e41f4b71Sopenharmony_ci**示例:** 2647e41f4b71Sopenharmony_ci 2648e41f4b71Sopenharmony_ci```ts 2649e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2650e41f4b71Sopenharmony_ci 2651e41f4b71Sopenharmony_ciasync function example() { 2652e41f4b71Sopenharmony_ci console.info('albumCommitModifyDemo'); 2653e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2654e41f4b71Sopenharmony_ci let albumFetchOptions: photoAccessHelper.FetchOptions = { 2655e41f4b71Sopenharmony_ci fetchColumns: [], 2656e41f4b71Sopenharmony_ci predicates: predicates 2657e41f4b71Sopenharmony_ci }; 2658e41f4b71Sopenharmony_ci let albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, albumFetchOptions); 2659e41f4b71Sopenharmony_ci let album: photoAccessHelper.Album = await albumList.getFirstObject(); 2660e41f4b71Sopenharmony_ci album.albumName = 'hello'; 2661e41f4b71Sopenharmony_ci album.commitModify((err) => { 2662e41f4b71Sopenharmony_ci if (err !== undefined) { 2663e41f4b71Sopenharmony_ci console.error(`commitModify failed with error: ${err.code}, ${err.message}`); 2664e41f4b71Sopenharmony_ci } else { 2665e41f4b71Sopenharmony_ci console.info('commitModify successfully'); 2666e41f4b71Sopenharmony_ci } 2667e41f4b71Sopenharmony_ci }); 2668e41f4b71Sopenharmony_ci} 2669e41f4b71Sopenharmony_ci``` 2670e41f4b71Sopenharmony_ci 2671e41f4b71Sopenharmony_ci### commitModify 2672e41f4b71Sopenharmony_ci 2673e41f4b71Sopenharmony_cicommitModify(): Promise<void> 2674e41f4b71Sopenharmony_ci 2675e41f4b71Sopenharmony_ci更新相册属性修改到数据库中。该方法使用Promise来返回结果。 2676e41f4b71Sopenharmony_ci 2677e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2678e41f4b71Sopenharmony_ci 2679e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2680e41f4b71Sopenharmony_ci 2681e41f4b71Sopenharmony_ci**返回值:** 2682e41f4b71Sopenharmony_ci 2683e41f4b71Sopenharmony_ci| 类型 | 说明 | 2684e41f4b71Sopenharmony_ci| ------------------- | ------------ | 2685e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,返回void。 | 2686e41f4b71Sopenharmony_ci 2687e41f4b71Sopenharmony_ci**错误码:** 2688e41f4b71Sopenharmony_ci 2689e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2690e41f4b71Sopenharmony_ci 2691e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2692e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2693e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2694e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 2695e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2696e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2697e41f4b71Sopenharmony_ci 2698e41f4b71Sopenharmony_ci**示例:** 2699e41f4b71Sopenharmony_ci 2700e41f4b71Sopenharmony_ci```ts 2701e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2702e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2703e41f4b71Sopenharmony_ci 2704e41f4b71Sopenharmony_ciasync function example() { 2705e41f4b71Sopenharmony_ci console.info('albumCommitModifyDemo'); 2706e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2707e41f4b71Sopenharmony_ci let albumFetchOptions: photoAccessHelper.FetchOptions = { 2708e41f4b71Sopenharmony_ci fetchColumns: [], 2709e41f4b71Sopenharmony_ci predicates: predicates 2710e41f4b71Sopenharmony_ci }; 2711e41f4b71Sopenharmony_ci let albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, albumFetchOptions); 2712e41f4b71Sopenharmony_ci let album: photoAccessHelper.Album = await albumList.getFirstObject(); 2713e41f4b71Sopenharmony_ci album.albumName = 'hello'; 2714e41f4b71Sopenharmony_ci album.commitModify().then(() => { 2715e41f4b71Sopenharmony_ci console.info('commitModify successfully'); 2716e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2717e41f4b71Sopenharmony_ci console.error(`commitModify failed with error: ${err.code}, ${err.message}`); 2718e41f4b71Sopenharmony_ci }); 2719e41f4b71Sopenharmony_ci} 2720e41f4b71Sopenharmony_ci``` 2721e41f4b71Sopenharmony_ci 2722e41f4b71Sopenharmony_ci### addAssets<sup>(deprecated)</sup> 2723e41f4b71Sopenharmony_ci 2724e41f4b71Sopenharmony_ciaddAssets(assets: Array<PhotoAsset>, callback: AsyncCallback<void>): void 2725e41f4b71Sopenharmony_ci 2726e41f4b71Sopenharmony_ci往相册中添加图片或者视频,需要先预置相册和文件资源。该方法使用callback形式来返回结果。 2727e41f4b71Sopenharmony_ci 2728e41f4b71Sopenharmony_ci> **说明:** 2729e41f4b71Sopenharmony_ci> 2730e41f4b71Sopenharmony_ci> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.addAssets](#addassets11)替代。 2731e41f4b71Sopenharmony_ci 2732e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2733e41f4b71Sopenharmony_ci 2734e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2735e41f4b71Sopenharmony_ci 2736e41f4b71Sopenharmony_ci**参数:** 2737e41f4b71Sopenharmony_ci 2738e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2739e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------- | 2740e41f4b71Sopenharmony_ci| assets | Array<[PhotoAsset](#photoasset)> | 是 | 待添加到相册中的图片或视频数组。 | 2741e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | callback返回void。 | 2742e41f4b71Sopenharmony_ci 2743e41f4b71Sopenharmony_ci**错误码:** 2744e41f4b71Sopenharmony_ci 2745e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2746e41f4b71Sopenharmony_ci 2747e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2748e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2749e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 2750e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 2751e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2752e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2753e41f4b71Sopenharmony_ci 2754e41f4b71Sopenharmony_ci**示例:** 2755e41f4b71Sopenharmony_ci 2756e41f4b71Sopenharmony_ci```ts 2757e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2758e41f4b71Sopenharmony_ci 2759e41f4b71Sopenharmony_ciasync function example() { 2760e41f4b71Sopenharmony_ci try { 2761e41f4b71Sopenharmony_ci console.info('addAssetsDemoCallback'); 2762e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2763e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 2764e41f4b71Sopenharmony_ci fetchColumns: [], 2765e41f4b71Sopenharmony_ci predicates: predicates 2766e41f4b71Sopenharmony_ci }; 2767e41f4b71Sopenharmony_ci let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 2768e41f4b71Sopenharmony_ci let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 2769e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 2770e41f4b71Sopenharmony_ci let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2771e41f4b71Sopenharmony_ci album.addAssets([asset], (err) => { 2772e41f4b71Sopenharmony_ci if (err === undefined) { 2773e41f4b71Sopenharmony_ci console.info('album addAssets successfully'); 2774e41f4b71Sopenharmony_ci } else { 2775e41f4b71Sopenharmony_ci console.error(`album addAssets failed with error: ${err.code}, ${err.message}`); 2776e41f4b71Sopenharmony_ci } 2777e41f4b71Sopenharmony_ci }); 2778e41f4b71Sopenharmony_ci } catch (err) { 2779e41f4b71Sopenharmony_ci console.error(`addAssetsDemoCallback failed with error: ${err.code}, ${err.message}`); 2780e41f4b71Sopenharmony_ci } 2781e41f4b71Sopenharmony_ci} 2782e41f4b71Sopenharmony_ci``` 2783e41f4b71Sopenharmony_ci 2784e41f4b71Sopenharmony_ci### addAssets<sup>(deprecated)</sup> 2785e41f4b71Sopenharmony_ci 2786e41f4b71Sopenharmony_ciaddAssets(assets: Array<PhotoAsset>): Promise<void> 2787e41f4b71Sopenharmony_ci 2788e41f4b71Sopenharmony_ci往相册中添加图片或者视频,需要先预置相册和文件资源。该方法使用Promise来返回结果。 2789e41f4b71Sopenharmony_ci 2790e41f4b71Sopenharmony_ci> **说明:** 2791e41f4b71Sopenharmony_ci> 2792e41f4b71Sopenharmony_ci> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.addAssets](#addassets11)替代。 2793e41f4b71Sopenharmony_ci 2794e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2795e41f4b71Sopenharmony_ci 2796e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2797e41f4b71Sopenharmony_ci 2798e41f4b71Sopenharmony_ci**参数:** 2799e41f4b71Sopenharmony_ci 2800e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2801e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------- | 2802e41f4b71Sopenharmony_ci| assets | Array<[PhotoAsset](#photoasset)> | 是 | 待添加到相册中的图片或视频数组。 | 2803e41f4b71Sopenharmony_ci 2804e41f4b71Sopenharmony_ci**返回值:** 2805e41f4b71Sopenharmony_ci 2806e41f4b71Sopenharmony_ci| 类型 | 说明 | 2807e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 2808e41f4b71Sopenharmony_ci|Promise<void> | Promise对象,返回void。 | 2809e41f4b71Sopenharmony_ci 2810e41f4b71Sopenharmony_ci**错误码:** 2811e41f4b71Sopenharmony_ci 2812e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2813e41f4b71Sopenharmony_ci 2814e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2815e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2816e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 2817e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 2818e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2819e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2820e41f4b71Sopenharmony_ci 2821e41f4b71Sopenharmony_ci**示例:** 2822e41f4b71Sopenharmony_ci 2823e41f4b71Sopenharmony_ci```ts 2824e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2825e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2826e41f4b71Sopenharmony_ci 2827e41f4b71Sopenharmony_ciasync function example() { 2828e41f4b71Sopenharmony_ci try { 2829e41f4b71Sopenharmony_ci console.info('addAssetsDemoPromise'); 2830e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2831e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 2832e41f4b71Sopenharmony_ci fetchColumns: [], 2833e41f4b71Sopenharmony_ci predicates: predicates 2834e41f4b71Sopenharmony_ci }; 2835e41f4b71Sopenharmony_ci let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 2836e41f4b71Sopenharmony_ci let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 2837e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 2838e41f4b71Sopenharmony_ci let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2839e41f4b71Sopenharmony_ci album.addAssets([asset]).then(() => { 2840e41f4b71Sopenharmony_ci console.info('album addAssets successfully'); 2841e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2842e41f4b71Sopenharmony_ci console.error(`album addAssets failed with error: ${err.code}, ${err.message}`); 2843e41f4b71Sopenharmony_ci }); 2844e41f4b71Sopenharmony_ci } catch (err) { 2845e41f4b71Sopenharmony_ci console.error(`addAssetsDemoPromise failed with error: ${err.code}, ${err.message}`); 2846e41f4b71Sopenharmony_ci } 2847e41f4b71Sopenharmony_ci} 2848e41f4b71Sopenharmony_ci``` 2849e41f4b71Sopenharmony_ci 2850e41f4b71Sopenharmony_ci### removeAssets<sup>(deprecated)</sup> 2851e41f4b71Sopenharmony_ci 2852e41f4b71Sopenharmony_ciremoveAssets(assets: Array<PhotoAsset>, callback: AsyncCallback<void>): void 2853e41f4b71Sopenharmony_ci 2854e41f4b71Sopenharmony_ci从相册中移除图片或者视频,需要先预置相册和文件资源。该方法使用callback形式来返回结果。 2855e41f4b71Sopenharmony_ci 2856e41f4b71Sopenharmony_ci> **说明:** 2857e41f4b71Sopenharmony_ci> 2858e41f4b71Sopenharmony_ci> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.removeAssets](#removeassets11)替代。 2859e41f4b71Sopenharmony_ci 2860e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2861e41f4b71Sopenharmony_ci 2862e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2863e41f4b71Sopenharmony_ci 2864e41f4b71Sopenharmony_ci**参数:** 2865e41f4b71Sopenharmony_ci 2866e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2867e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------- | 2868e41f4b71Sopenharmony_ci| assets | Array<[PhotoAsset](#photoasset)> | 是 | 相册中待移除的图片或视频数组。 | 2869e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | callback返回void。 | 2870e41f4b71Sopenharmony_ci 2871e41f4b71Sopenharmony_ci**错误码:** 2872e41f4b71Sopenharmony_ci 2873e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2874e41f4b71Sopenharmony_ci 2875e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2876e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2877e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 2878e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 2879e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2880e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2881e41f4b71Sopenharmony_ci 2882e41f4b71Sopenharmony_ci**示例:** 2883e41f4b71Sopenharmony_ci 2884e41f4b71Sopenharmony_ci```ts 2885e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2886e41f4b71Sopenharmony_ci 2887e41f4b71Sopenharmony_ciasync function example() { 2888e41f4b71Sopenharmony_ci try { 2889e41f4b71Sopenharmony_ci console.info('removeAssetsDemoCallback'); 2890e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2891e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 2892e41f4b71Sopenharmony_ci fetchColumns: [], 2893e41f4b71Sopenharmony_ci predicates: predicates 2894e41f4b71Sopenharmony_ci }; 2895e41f4b71Sopenharmony_ci let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 2896e41f4b71Sopenharmony_ci let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 2897e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption); 2898e41f4b71Sopenharmony_ci let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2899e41f4b71Sopenharmony_ci album.removeAssets([asset], (err) => { 2900e41f4b71Sopenharmony_ci if (err === undefined) { 2901e41f4b71Sopenharmony_ci console.info('album removeAssets successfully'); 2902e41f4b71Sopenharmony_ci } else { 2903e41f4b71Sopenharmony_ci console.error(`album removeAssets failed with error: ${err.code}, ${err.message}`); 2904e41f4b71Sopenharmony_ci } 2905e41f4b71Sopenharmony_ci }); 2906e41f4b71Sopenharmony_ci } catch (err) { 2907e41f4b71Sopenharmony_ci console.error(`removeAssetsDemoCallback failed with error: ${err.code}, ${err.message}`); 2908e41f4b71Sopenharmony_ci } 2909e41f4b71Sopenharmony_ci} 2910e41f4b71Sopenharmony_ci``` 2911e41f4b71Sopenharmony_ci 2912e41f4b71Sopenharmony_ci### removeAssets<sup>(deprecated)</sup> 2913e41f4b71Sopenharmony_ci 2914e41f4b71Sopenharmony_ciremoveAssets(assets: Array<PhotoAsset>): Promise<void> 2915e41f4b71Sopenharmony_ci 2916e41f4b71Sopenharmony_ci从相册中移除图片或者视频,需要先预置相册和文件资源。该方法使用Promise来返回结果。 2917e41f4b71Sopenharmony_ci 2918e41f4b71Sopenharmony_ci> **说明:** 2919e41f4b71Sopenharmony_ci> 2920e41f4b71Sopenharmony_ci> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.removeAssets](#removeassets11)替代。 2921e41f4b71Sopenharmony_ci 2922e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2923e41f4b71Sopenharmony_ci 2924e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2925e41f4b71Sopenharmony_ci 2926e41f4b71Sopenharmony_ci**参数:** 2927e41f4b71Sopenharmony_ci 2928e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2929e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------- | 2930e41f4b71Sopenharmony_ci| assets | Array<[PhotoAsset](#photoasset)> | 是 | 相册中待移除的图片或视频数组。 | 2931e41f4b71Sopenharmony_ci 2932e41f4b71Sopenharmony_ci**返回值:** 2933e41f4b71Sopenharmony_ci 2934e41f4b71Sopenharmony_ci| 类型 | 说明 | 2935e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 2936e41f4b71Sopenharmony_ci|Promise<void> | Promise对象,返回void。 | 2937e41f4b71Sopenharmony_ci 2938e41f4b71Sopenharmony_ci**错误码:** 2939e41f4b71Sopenharmony_ci 2940e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2941e41f4b71Sopenharmony_ci 2942e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2943e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 2944e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 2945e41f4b71Sopenharmony_ci| 13900012 | Permission denied. | 2946e41f4b71Sopenharmony_ci| 13900020 | Invalid argument. | 2947e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 2948e41f4b71Sopenharmony_ci 2949e41f4b71Sopenharmony_ci**示例:** 2950e41f4b71Sopenharmony_ci 2951e41f4b71Sopenharmony_ci```ts 2952e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 2953e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2954e41f4b71Sopenharmony_ci 2955e41f4b71Sopenharmony_ciasync function example() { 2956e41f4b71Sopenharmony_ci try { 2957e41f4b71Sopenharmony_ci console.info('removeAssetsDemoPromise'); 2958e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2959e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 2960e41f4b71Sopenharmony_ci fetchColumns: [], 2961e41f4b71Sopenharmony_ci predicates: predicates 2962e41f4b71Sopenharmony_ci }; 2963e41f4b71Sopenharmony_ci let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 2964e41f4b71Sopenharmony_ci let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 2965e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption); 2966e41f4b71Sopenharmony_ci let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2967e41f4b71Sopenharmony_ci album.removeAssets([asset]).then(() => { 2968e41f4b71Sopenharmony_ci console.info('album removeAssets successfully'); 2969e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 2970e41f4b71Sopenharmony_ci console.error(`album removeAssets failed with error: ${err.code}, ${err.message}`); 2971e41f4b71Sopenharmony_ci }); 2972e41f4b71Sopenharmony_ci } catch (err) { 2973e41f4b71Sopenharmony_ci console.error(`removeAssetsDemoPromise failed with error: ${err.code}, ${err.message}`); 2974e41f4b71Sopenharmony_ci } 2975e41f4b71Sopenharmony_ci} 2976e41f4b71Sopenharmony_ci``` 2977e41f4b71Sopenharmony_ci 2978e41f4b71Sopenharmony_ci## MediaAssetChangeRequest<sup>11+</sup> 2979e41f4b71Sopenharmony_ci 2980e41f4b71Sopenharmony_ci资产变更请求。 2981e41f4b71Sopenharmony_ci 2982e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2983e41f4b71Sopenharmony_ci 2984e41f4b71Sopenharmony_ci### constructor<sup>11+</sup> 2985e41f4b71Sopenharmony_ci 2986e41f4b71Sopenharmony_ciconstructor(asset: PhotoAsset) 2987e41f4b71Sopenharmony_ci 2988e41f4b71Sopenharmony_ci构造函数。 2989e41f4b71Sopenharmony_ci 2990e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2991e41f4b71Sopenharmony_ci 2992e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2993e41f4b71Sopenharmony_ci 2994e41f4b71Sopenharmony_ci**参数:** 2995e41f4b71Sopenharmony_ci 2996e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2997e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------- | 2998e41f4b71Sopenharmony_ci| asset | [PhotoAsset](#photoasset) | 是 | 需要变更的资产。 | 2999e41f4b71Sopenharmony_ci 3000e41f4b71Sopenharmony_ci**错误码:** 3001e41f4b71Sopenharmony_ci 3002e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3003e41f4b71Sopenharmony_ci 3004e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3005e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3006e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3007e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3008e41f4b71Sopenharmony_ci 3009e41f4b71Sopenharmony_ci**示例:** 3010e41f4b71Sopenharmony_ci 3011e41f4b71Sopenharmony_ci```ts 3012e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 3013e41f4b71Sopenharmony_ci 3014e41f4b71Sopenharmony_ciasync function example() { 3015e41f4b71Sopenharmony_ci console.info('MediaAssetChangeRequest constructorDemo'); 3016e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3017e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 3018e41f4b71Sopenharmony_ci fetchColumns: [], 3019e41f4b71Sopenharmony_ci predicates: predicates 3020e41f4b71Sopenharmony_ci }; 3021e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 3022e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 3023e41f4b71Sopenharmony_ci let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(photoAsset); 3024e41f4b71Sopenharmony_ci} 3025e41f4b71Sopenharmony_ci``` 3026e41f4b71Sopenharmony_ci 3027e41f4b71Sopenharmony_ci### createImageAssetRequest<sup>11+</sup> 3028e41f4b71Sopenharmony_ci 3029e41f4b71Sopenharmony_cistatic createImageAssetRequest(context: Context, fileUri: string): MediaAssetChangeRequest 3030e41f4b71Sopenharmony_ci 3031e41f4b71Sopenharmony_ci创建图片资产变更请求。 3032e41f4b71Sopenharmony_ci 3033e41f4b71Sopenharmony_ci通过fileUri指定待创建资产的数据来源,可参考[FileUri](../apis-core-file-kit/js-apis-file-fileuri.md)。 3034e41f4b71Sopenharmony_ci 3035e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3036e41f4b71Sopenharmony_ci 3037e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3038e41f4b71Sopenharmony_ci 3039e41f4b71Sopenharmony_ci**参数:** 3040e41f4b71Sopenharmony_ci 3041e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3042e41f4b71Sopenharmony_ci| ------- | ------- | ---- | -------------------------- | 3043e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。 | 3044e41f4b71Sopenharmony_ci| fileUri | string | 是 | 图片资产的数据来源,在应用沙箱下的uri。 | 3045e41f4b71Sopenharmony_ci 3046e41f4b71Sopenharmony_ci**返回值:** 3047e41f4b71Sopenharmony_ci 3048e41f4b71Sopenharmony_ci| 类型 | 说明 | 3049e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 3050e41f4b71Sopenharmony_ci| [MediaAssetChangeRequest](#mediaassetchangerequest11) | 返回创建资产的变更请求。 | 3051e41f4b71Sopenharmony_ci 3052e41f4b71Sopenharmony_ci**错误码:** 3053e41f4b71Sopenharmony_ci 3054e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3055e41f4b71Sopenharmony_ci 3056e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3057e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3058e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3059e41f4b71Sopenharmony_ci| 13900002 | No such file. | 3060e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3061e41f4b71Sopenharmony_ci 3062e41f4b71Sopenharmony_ci**示例:** 3063e41f4b71Sopenharmony_ci 3064e41f4b71Sopenharmony_ci```ts 3065e41f4b71Sopenharmony_ciasync function example() { 3066e41f4b71Sopenharmony_ci console.info('createImageAssetRequestDemo'); 3067e41f4b71Sopenharmony_ci try { 3068e41f4b71Sopenharmony_ci // 需要确保fileUri对应的资源存在 3069e41f4b71Sopenharmony_ci let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg'; 3070e41f4b71Sopenharmony_ci let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createImageAssetRequest(context, fileUri); 3071e41f4b71Sopenharmony_ci await phAccessHelper.applyChanges(assetChangeRequest); 3072e41f4b71Sopenharmony_ci console.info('apply createImageAssetRequest successfully'); 3073e41f4b71Sopenharmony_ci } catch (err) { 3074e41f4b71Sopenharmony_ci console.error(`createImageAssetRequestDemo failed with error: ${err.code}, ${err.message}`); 3075e41f4b71Sopenharmony_ci } 3076e41f4b71Sopenharmony_ci} 3077e41f4b71Sopenharmony_ci``` 3078e41f4b71Sopenharmony_ci 3079e41f4b71Sopenharmony_ci### createVideoAssetRequest<sup>11+</sup> 3080e41f4b71Sopenharmony_ci 3081e41f4b71Sopenharmony_cistatic createVideoAssetRequest(context: Context, fileUri: string): MediaAssetChangeRequest 3082e41f4b71Sopenharmony_ci 3083e41f4b71Sopenharmony_ci创建视频资产变更请求。 3084e41f4b71Sopenharmony_ci 3085e41f4b71Sopenharmony_ci通过fileUri指定待创建资产的数据来源,可参考[FileUri](../apis-core-file-kit/js-apis-file-fileuri.md)。 3086e41f4b71Sopenharmony_ci 3087e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3088e41f4b71Sopenharmony_ci 3089e41f4b71Sopenharmony_ci**参数:** 3090e41f4b71Sopenharmony_ci 3091e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3092e41f4b71Sopenharmony_ci| ------- | ------- | ---- | -------------------------- | 3093e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。 | 3094e41f4b71Sopenharmony_ci| fileUri | string | 是 | 视频资产的数据来源,在应用沙箱下的uri。 | 3095e41f4b71Sopenharmony_ci 3096e41f4b71Sopenharmony_ci**返回值:** 3097e41f4b71Sopenharmony_ci 3098e41f4b71Sopenharmony_ci| 类型 | 说明 | 3099e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 3100e41f4b71Sopenharmony_ci| [MediaAssetChangeRequest](#mediaassetchangerequest11) | 返回创建资产的变更请求。 | 3101e41f4b71Sopenharmony_ci 3102e41f4b71Sopenharmony_ci**错误码:** 3103e41f4b71Sopenharmony_ci 3104e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3105e41f4b71Sopenharmony_ci 3106e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3107e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3108e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3109e41f4b71Sopenharmony_ci| 13900002 | No such file. | 3110e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3111e41f4b71Sopenharmony_ci 3112e41f4b71Sopenharmony_ci**示例:** 3113e41f4b71Sopenharmony_ci 3114e41f4b71Sopenharmony_ci```ts 3115e41f4b71Sopenharmony_ciasync function example() { 3116e41f4b71Sopenharmony_ci console.info('createVideoAssetRequestDemo'); 3117e41f4b71Sopenharmony_ci try { 3118e41f4b71Sopenharmony_ci // 需要确保fileUri对应的资源存在 3119e41f4b71Sopenharmony_ci let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.mp4'; 3120e41f4b71Sopenharmony_ci let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createVideoAssetRequest(context, fileUri); 3121e41f4b71Sopenharmony_ci await phAccessHelper.applyChanges(assetChangeRequest); 3122e41f4b71Sopenharmony_ci console.info('apply createVideoAssetRequest successfully'); 3123e41f4b71Sopenharmony_ci } catch (err) { 3124e41f4b71Sopenharmony_ci console.error(`createVideoAssetRequestDemo failed with error: ${err.code}, ${err.message}`); 3125e41f4b71Sopenharmony_ci } 3126e41f4b71Sopenharmony_ci} 3127e41f4b71Sopenharmony_ci``` 3128e41f4b71Sopenharmony_ci 3129e41f4b71Sopenharmony_ci### createAssetRequest<sup>11+</sup> 3130e41f4b71Sopenharmony_ci 3131e41f4b71Sopenharmony_cistatic createAssetRequest(context: Context, photoType: PhotoType, extension: string, options?: CreateOptions): MediaAssetChangeRequest 3132e41f4b71Sopenharmony_ci 3133e41f4b71Sopenharmony_ci指定待创建的文件类型和扩展名,创建资产变更请求。 3134e41f4b71Sopenharmony_ci 3135e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3136e41f4b71Sopenharmony_ci 3137e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3138e41f4b71Sopenharmony_ci 3139e41f4b71Sopenharmony_ci**参数:** 3140e41f4b71Sopenharmony_ci 3141e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3142e41f4b71Sopenharmony_ci| ------- | ------- | ---- | -------------------------- | 3143e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。 | 3144e41f4b71Sopenharmony_ci| photoType | [PhotoType](#phototype) | 是 | 待创建的文件类型,IMAGE或者VIDEO类型。 | 3145e41f4b71Sopenharmony_ci| extension | string | 是 | 文件扩展名,例如:'jpg'。 | 3146e41f4b71Sopenharmony_ci| options | [CreateOptions](#createoptions) | 否 | 创建选项,例如:{title: 'testPhoto'}。 | 3147e41f4b71Sopenharmony_ci 3148e41f4b71Sopenharmony_ci**返回值:** 3149e41f4b71Sopenharmony_ci 3150e41f4b71Sopenharmony_ci| 类型 | 说明 | 3151e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 3152e41f4b71Sopenharmony_ci| [MediaAssetChangeRequest](#mediaassetchangerequest11) | 返回创建资产的变更请求。 | 3153e41f4b71Sopenharmony_ci 3154e41f4b71Sopenharmony_ci**错误码:** 3155e41f4b71Sopenharmony_ci 3156e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3157e41f4b71Sopenharmony_ci 3158e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3159e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3160e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3161e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3162e41f4b71Sopenharmony_ci 3163e41f4b71Sopenharmony_ci**示例:** 3164e41f4b71Sopenharmony_ci 3165e41f4b71Sopenharmony_ci```ts 3166e41f4b71Sopenharmony_ciasync function example() { 3167e41f4b71Sopenharmony_ci console.info('createAssetRequestDemo'); 3168e41f4b71Sopenharmony_ci try { 3169e41f4b71Sopenharmony_ci let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE; 3170e41f4b71Sopenharmony_ci let extension: string = 'jpg'; 3171e41f4b71Sopenharmony_ci let options: photoAccessHelper.CreateOptions = { 3172e41f4b71Sopenharmony_ci title: 'testPhoto' 3173e41f4b71Sopenharmony_ci } 3174e41f4b71Sopenharmony_ci let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, photoType, extension, options); 3175e41f4b71Sopenharmony_ci // 需要确保fileUri对应的资源存在 3176e41f4b71Sopenharmony_ci let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg'; 3177e41f4b71Sopenharmony_ci assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, fileUri); 3178e41f4b71Sopenharmony_ci await phAccessHelper.applyChanges(assetChangeRequest); 3179e41f4b71Sopenharmony_ci console.info('apply createAssetRequest successfully'); 3180e41f4b71Sopenharmony_ci } catch (err) { 3181e41f4b71Sopenharmony_ci console.error(`createAssetRequestDemo failed with error: ${err.code}, ${err.message}`); 3182e41f4b71Sopenharmony_ci } 3183e41f4b71Sopenharmony_ci} 3184e41f4b71Sopenharmony_ci``` 3185e41f4b71Sopenharmony_ci 3186e41f4b71Sopenharmony_ci### deleteAssets<sup>11+</sup> 3187e41f4b71Sopenharmony_ci 3188e41f4b71Sopenharmony_cistatic deleteAssets(context: Context, assets: Array<PhotoAsset>): Promise<void> 3189e41f4b71Sopenharmony_ci 3190e41f4b71Sopenharmony_ci删除媒体文件,删除的文件进入到回收站,使用Promise方式返回结果。 3191e41f4b71Sopenharmony_ci 3192e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3193e41f4b71Sopenharmony_ci 3194e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3195e41f4b71Sopenharmony_ci 3196e41f4b71Sopenharmony_ci**参数:** 3197e41f4b71Sopenharmony_ci 3198e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3199e41f4b71Sopenharmony_ci| ------- | ------- | ---- | -------------------------- | 3200e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。 | 3201e41f4b71Sopenharmony_ci| assets | Array<[PhotoAsset](#photoasset)> | 是 | 待删除的媒体文件数组。 | 3202e41f4b71Sopenharmony_ci 3203e41f4b71Sopenharmony_ci**返回值:** 3204e41f4b71Sopenharmony_ci 3205e41f4b71Sopenharmony_ci| 类型 | 说明 | 3206e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 3207e41f4b71Sopenharmony_ci| Promise<void>| Promise对象,返回void。 | 3208e41f4b71Sopenharmony_ci 3209e41f4b71Sopenharmony_ci**错误码:** 3210e41f4b71Sopenharmony_ci 3211e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3212e41f4b71Sopenharmony_ci 3213e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3214e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3215e41f4b71Sopenharmony_ci| 201 | Permission denied. | 3216e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3217e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3218e41f4b71Sopenharmony_ci 3219e41f4b71Sopenharmony_ci**示例:** 3220e41f4b71Sopenharmony_ci 3221e41f4b71Sopenharmony_ci```ts 3222e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 3223e41f4b71Sopenharmony_ci 3224e41f4b71Sopenharmony_ciasync function example() { 3225e41f4b71Sopenharmony_ci console.info('deleteAssetsDemo'); 3226e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3227e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 3228e41f4b71Sopenharmony_ci fetchColumns: [], 3229e41f4b71Sopenharmony_ci predicates: predicates 3230e41f4b71Sopenharmony_ci }; 3231e41f4b71Sopenharmony_ci try { 3232e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 3233e41f4b71Sopenharmony_ci let photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects(); 3234e41f4b71Sopenharmony_ci await photoAccessHelper.MediaAssetChangeRequest.deleteAssets(context, photoAssetList); 3235e41f4b71Sopenharmony_ci console.info('deleteAssets successfully'); 3236e41f4b71Sopenharmony_ci } catch (err) { 3237e41f4b71Sopenharmony_ci console.error(`deleteAssetsDemo failed with error: ${err.code}, ${err.message}`); 3238e41f4b71Sopenharmony_ci } 3239e41f4b71Sopenharmony_ci} 3240e41f4b71Sopenharmony_ci``` 3241e41f4b71Sopenharmony_ci 3242e41f4b71Sopenharmony_ci### deleteAssets<sup>11+</sup> 3243e41f4b71Sopenharmony_ci 3244e41f4b71Sopenharmony_cistatic deleteAssets(context: Context, uriList: Array<string>): Promise<void> 3245e41f4b71Sopenharmony_ci 3246e41f4b71Sopenharmony_ci删除媒体文件,删除的文件进入到回收站,使用Promise方式返回结果。 3247e41f4b71Sopenharmony_ci 3248e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3249e41f4b71Sopenharmony_ci 3250e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3251e41f4b71Sopenharmony_ci 3252e41f4b71Sopenharmony_ci**参数:** 3253e41f4b71Sopenharmony_ci 3254e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3255e41f4b71Sopenharmony_ci| ------- | ------- | ---- | -------------------------- | 3256e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。 | 3257e41f4b71Sopenharmony_ci| uriList | Array<string> | 是 | 待删除的媒体文件uri数组。 | 3258e41f4b71Sopenharmony_ci 3259e41f4b71Sopenharmony_ci**返回值:** 3260e41f4b71Sopenharmony_ci 3261e41f4b71Sopenharmony_ci| 类型 | 说明 | 3262e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 3263e41f4b71Sopenharmony_ci| Promise<void>| Promise对象,返回void。 | 3264e41f4b71Sopenharmony_ci 3265e41f4b71Sopenharmony_ci**错误码:** 3266e41f4b71Sopenharmony_ci 3267e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3268e41f4b71Sopenharmony_ci 3269e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3270e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3271e41f4b71Sopenharmony_ci| 201 | Permission denied. | 3272e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3273e41f4b71Sopenharmony_ci| 14000002 | Invalid asset uri. | 3274e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3275e41f4b71Sopenharmony_ci 3276e41f4b71Sopenharmony_ci**示例:** 3277e41f4b71Sopenharmony_ci 3278e41f4b71Sopenharmony_ci```ts 3279e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 3280e41f4b71Sopenharmony_ci 3281e41f4b71Sopenharmony_ciasync function example() { 3282e41f4b71Sopenharmony_ci console.info('deleteAssetsDemo'); 3283e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3284e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 3285e41f4b71Sopenharmony_ci fetchColumns: [], 3286e41f4b71Sopenharmony_ci predicates: predicates 3287e41f4b71Sopenharmony_ci }; 3288e41f4b71Sopenharmony_ci try { 3289e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 3290e41f4b71Sopenharmony_ci let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 3291e41f4b71Sopenharmony_ci await photoAccessHelper.MediaAssetChangeRequest.deleteAssets(context, [asset.uri]); 3292e41f4b71Sopenharmony_ci console.info('deleteAssets successfully'); 3293e41f4b71Sopenharmony_ci } catch (err) { 3294e41f4b71Sopenharmony_ci console.error(`deleteAssetsDemo failed with error: ${err.code}, ${err.message}`); 3295e41f4b71Sopenharmony_ci } 3296e41f4b71Sopenharmony_ci} 3297e41f4b71Sopenharmony_ci``` 3298e41f4b71Sopenharmony_ci 3299e41f4b71Sopenharmony_ci### getAsset<sup>11+</sup> 3300e41f4b71Sopenharmony_ci 3301e41f4b71Sopenharmony_cigetAsset(): PhotoAsset 3302e41f4b71Sopenharmony_ci 3303e41f4b71Sopenharmony_ci获取当前资产变更请求中的资产。 3304e41f4b71Sopenharmony_ci 3305e41f4b71Sopenharmony_ci**注意**:对于创建资产的变更请求,在调用[applyChanges](#applychanges11)提交生效之前,该接口返回null。 3306e41f4b71Sopenharmony_ci 3307e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3308e41f4b71Sopenharmony_ci 3309e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3310e41f4b71Sopenharmony_ci 3311e41f4b71Sopenharmony_ci**返回值:** 3312e41f4b71Sopenharmony_ci 3313e41f4b71Sopenharmony_ci| 类型 | 说明 | 3314e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 3315e41f4b71Sopenharmony_ci| [PhotoAsset](#photoasset) | 返回当前资产变更请求中的资产。 | 3316e41f4b71Sopenharmony_ci 3317e41f4b71Sopenharmony_ci**错误码:** 3318e41f4b71Sopenharmony_ci 3319e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3320e41f4b71Sopenharmony_ci 3321e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3322e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3323e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3324e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3325e41f4b71Sopenharmony_ci 3326e41f4b71Sopenharmony_ci**示例:** 3327e41f4b71Sopenharmony_ci 3328e41f4b71Sopenharmony_ci```ts 3329e41f4b71Sopenharmony_ciasync function example() { 3330e41f4b71Sopenharmony_ci console.info('getAssetDemo'); 3331e41f4b71Sopenharmony_ci try { 3332e41f4b71Sopenharmony_ci // 需要确保fileUri对应的资源存在 3333e41f4b71Sopenharmony_ci let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg'; 3334e41f4b71Sopenharmony_ci let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createImageAssetRequest(context, fileUri); 3335e41f4b71Sopenharmony_ci await phAccessHelper.applyChanges(assetChangeRequest); 3336e41f4b71Sopenharmony_ci let asset: photoAccessHelper.PhotoAsset = assetChangeRequest.getAsset(); 3337e41f4b71Sopenharmony_ci console.info('create asset successfully with uri = ' + asset.uri); 3338e41f4b71Sopenharmony_ci } catch (err) { 3339e41f4b71Sopenharmony_ci console.error(`getAssetDemo failed with error: ${err.code}, ${err.message}`); 3340e41f4b71Sopenharmony_ci } 3341e41f4b71Sopenharmony_ci} 3342e41f4b71Sopenharmony_ci``` 3343e41f4b71Sopenharmony_ci 3344e41f4b71Sopenharmony_ci### setTitle<sup>11+</sup> 3345e41f4b71Sopenharmony_ci 3346e41f4b71Sopenharmony_cisetTitle(title: string): void 3347e41f4b71Sopenharmony_ci 3348e41f4b71Sopenharmony_ci修改媒体资产的标题。 3349e41f4b71Sopenharmony_ci 3350e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 3351e41f4b71Sopenharmony_ci 3352e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3353e41f4b71Sopenharmony_ci 3354e41f4b71Sopenharmony_ci**参数:** 3355e41f4b71Sopenharmony_ci 3356e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3357e41f4b71Sopenharmony_ci| ---------- | ------- | ---- | ---------------------------------- | 3358e41f4b71Sopenharmony_ci| title | string | 是 | 待修改的资产标题。 | 3359e41f4b71Sopenharmony_ci 3360e41f4b71Sopenharmony_cititle参数规格为: 3361e41f4b71Sopenharmony_ci- 不应包含扩展名。 3362e41f4b71Sopenharmony_ci- 文件名字符串长度为1~255。 3363e41f4b71Sopenharmony_ci- 不允许出现非法字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ] 3364e41f4b71Sopenharmony_ci 3365e41f4b71Sopenharmony_ci**错误码:** 3366e41f4b71Sopenharmony_ci 3367e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3368e41f4b71Sopenharmony_ci 3369e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3370e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3371e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3372e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3373e41f4b71Sopenharmony_ci 3374e41f4b71Sopenharmony_ci**示例:** 3375e41f4b71Sopenharmony_ci 3376e41f4b71Sopenharmony_ci```ts 3377e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 3378e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3379e41f4b71Sopenharmony_ci 3380e41f4b71Sopenharmony_ciasync function example() { 3381e41f4b71Sopenharmony_ci console.info('setTitleDemo'); 3382e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3383e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 3384e41f4b71Sopenharmony_ci fetchColumns: [], 3385e41f4b71Sopenharmony_ci predicates: predicates 3386e41f4b71Sopenharmony_ci }; 3387e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 3388e41f4b71Sopenharmony_ci let asset = await fetchResult.getFirstObject(); 3389e41f4b71Sopenharmony_ci let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset); 3390e41f4b71Sopenharmony_ci let newTitle: string = 'newTitle'; 3391e41f4b71Sopenharmony_ci assetChangeRequest.setTitle(newTitle); 3392e41f4b71Sopenharmony_ci phAccessHelper.applyChanges(assetChangeRequest).then(() => { 3393e41f4b71Sopenharmony_ci console.info('apply setTitle successfully'); 3394e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3395e41f4b71Sopenharmony_ci console.error(`apply setTitle failed with error: ${err.code}, ${err.message}`); 3396e41f4b71Sopenharmony_ci }); 3397e41f4b71Sopenharmony_ci} 3398e41f4b71Sopenharmony_ci``` 3399e41f4b71Sopenharmony_ci 3400e41f4b71Sopenharmony_ci### getWriteCacheHandler<sup>11+</sup> 3401e41f4b71Sopenharmony_ci 3402e41f4b71Sopenharmony_cigetWriteCacheHandler(): Promise<number> 3403e41f4b71Sopenharmony_ci 3404e41f4b71Sopenharmony_ci获取临时文件写句柄。 3405e41f4b71Sopenharmony_ci 3406e41f4b71Sopenharmony_ci**注意**:对于同一个资产变更请求,不支持在成功获取临时文件写句柄后,重复调用该接口。 3407e41f4b71Sopenharmony_ci 3408e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3409e41f4b71Sopenharmony_ci 3410e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3411e41f4b71Sopenharmony_ci 3412e41f4b71Sopenharmony_ci**返回值:** 3413e41f4b71Sopenharmony_ci 3414e41f4b71Sopenharmony_ci| 类型 | 说明 | 3415e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 3416e41f4b71Sopenharmony_ci| Promise<number> | Promise对象,返回临时文件写句柄。 | 3417e41f4b71Sopenharmony_ci 3418e41f4b71Sopenharmony_ci**错误码:** 3419e41f4b71Sopenharmony_ci 3420e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3421e41f4b71Sopenharmony_ci 3422e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3423e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3424e41f4b71Sopenharmony_ci| 201 | Permission denied. | 3425e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3426e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3427e41f4b71Sopenharmony_ci| 14000016 | Operation Not Support. | 3428e41f4b71Sopenharmony_ci 3429e41f4b71Sopenharmony_ci**示例:** 3430e41f4b71Sopenharmony_ci 3431e41f4b71Sopenharmony_ci```ts 3432e41f4b71Sopenharmony_ciimport { fileIo } from '@kit.CoreFileKit'; 3433e41f4b71Sopenharmony_ci 3434e41f4b71Sopenharmony_ciasync function example() { 3435e41f4b71Sopenharmony_ci console.info('getWriteCacheHandlerDemo'); 3436e41f4b71Sopenharmony_ci try { 3437e41f4b71Sopenharmony_ci let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.VIDEO; 3438e41f4b71Sopenharmony_ci let extension: string = 'mp4'; 3439e41f4b71Sopenharmony_ci let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, photoType, extension); 3440e41f4b71Sopenharmony_ci let fd: number = await assetChangeRequest.getWriteCacheHandler(); 3441e41f4b71Sopenharmony_ci console.info('getWriteCacheHandler successfully'); 3442e41f4b71Sopenharmony_ci // write date into fd 3443e41f4b71Sopenharmony_ci await fileIo.close(fd); 3444e41f4b71Sopenharmony_ci await phAccessHelper.applyChanges(assetChangeRequest); 3445e41f4b71Sopenharmony_ci } catch (err) { 3446e41f4b71Sopenharmony_ci console.error(`getWriteCacheHandlerDemo failed with error: ${err.code}, ${err.message}`); 3447e41f4b71Sopenharmony_ci } 3448e41f4b71Sopenharmony_ci} 3449e41f4b71Sopenharmony_ci``` 3450e41f4b71Sopenharmony_ci 3451e41f4b71Sopenharmony_ci### addResource<sup>11+</sup> 3452e41f4b71Sopenharmony_ci 3453e41f4b71Sopenharmony_ciaddResource(type: ResourceType, fileUri: string): void 3454e41f4b71Sopenharmony_ci 3455e41f4b71Sopenharmony_ci通过fileUri从应用沙箱添加资源。 3456e41f4b71Sopenharmony_ci 3457e41f4b71Sopenharmony_ci**注意**:对于同一个资产变更请求,不支持在成功添加资源后,重复调用该接口。对于动态照片,可调用两次该接口分别添加图片和视频资源。 3458e41f4b71Sopenharmony_ci 3459e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3460e41f4b71Sopenharmony_ci 3461e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3462e41f4b71Sopenharmony_ci 3463e41f4b71Sopenharmony_ci**参数:** 3464e41f4b71Sopenharmony_ci 3465e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3466e41f4b71Sopenharmony_ci| ------- | ------- | ---- | -------------------------- | 3467e41f4b71Sopenharmony_ci| type | [ResourceType](#resourcetype11) | 是 | 待添加资源的类型。 | 3468e41f4b71Sopenharmony_ci| fileUri | string | 是 | 待添加资源的数据来源,在应用沙箱下的uri。 | 3469e41f4b71Sopenharmony_ci 3470e41f4b71Sopenharmony_ci**错误码:** 3471e41f4b71Sopenharmony_ci 3472e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3473e41f4b71Sopenharmony_ci 3474e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3475e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3476e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3477e41f4b71Sopenharmony_ci| 13900002 | No such file. | 3478e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3479e41f4b71Sopenharmony_ci| 14000016 | Operation Not Support. | 3480e41f4b71Sopenharmony_ci 3481e41f4b71Sopenharmony_ci**示例:** 3482e41f4b71Sopenharmony_ci 3483e41f4b71Sopenharmony_ci```ts 3484e41f4b71Sopenharmony_ciasync function example() { 3485e41f4b71Sopenharmony_ci console.info('addResourceByFileUriDemo'); 3486e41f4b71Sopenharmony_ci try { 3487e41f4b71Sopenharmony_ci let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE; 3488e41f4b71Sopenharmony_ci let extension: string = 'jpg'; 3489e41f4b71Sopenharmony_ci let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, photoType, extension); 3490e41f4b71Sopenharmony_ci // 需要确保fileUri对应的资源存在 3491e41f4b71Sopenharmony_ci let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg'; 3492e41f4b71Sopenharmony_ci assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, fileUri); 3493e41f4b71Sopenharmony_ci await phAccessHelper.applyChanges(assetChangeRequest); 3494e41f4b71Sopenharmony_ci console.info('addResourceByFileUri successfully'); 3495e41f4b71Sopenharmony_ci } catch (err) { 3496e41f4b71Sopenharmony_ci console.error(`addResourceByFileUriDemo failed with error: ${err.code}, ${err.message}`); 3497e41f4b71Sopenharmony_ci } 3498e41f4b71Sopenharmony_ci} 3499e41f4b71Sopenharmony_ci``` 3500e41f4b71Sopenharmony_ci 3501e41f4b71Sopenharmony_ci### addResource<sup>11+</sup> 3502e41f4b71Sopenharmony_ci 3503e41f4b71Sopenharmony_ciaddResource(type: ResourceType, data: ArrayBuffer): void 3504e41f4b71Sopenharmony_ci 3505e41f4b71Sopenharmony_ci通过ArrayBuffer数据添加资源。 3506e41f4b71Sopenharmony_ci 3507e41f4b71Sopenharmony_ci**注意**:对于同一个资产变更请求,不支持在成功添加资源后,重复调用该接口。对于动态照片,可调用两次该接口分别添加图片和视频资源。 3508e41f4b71Sopenharmony_ci 3509e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 3510e41f4b71Sopenharmony_ci 3511e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3512e41f4b71Sopenharmony_ci 3513e41f4b71Sopenharmony_ci**参数:** 3514e41f4b71Sopenharmony_ci 3515e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3516e41f4b71Sopenharmony_ci| ------- | ------- | ---- | -------------------------- | 3517e41f4b71Sopenharmony_ci| type | [ResourceType](#resourcetype11) | 是 | 待添加资源的类型。 | 3518e41f4b71Sopenharmony_ci| data | ArrayBuffer | 是 | 待添加资源的数据。 | 3519e41f4b71Sopenharmony_ci 3520e41f4b71Sopenharmony_ci**错误码:** 3521e41f4b71Sopenharmony_ci 3522e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3523e41f4b71Sopenharmony_ci 3524e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3525e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3526e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3527e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3528e41f4b71Sopenharmony_ci| 14000016 | Operation Not Support. | 3529e41f4b71Sopenharmony_ci 3530e41f4b71Sopenharmony_ci**示例:** 3531e41f4b71Sopenharmony_ci 3532e41f4b71Sopenharmony_ci```ts 3533e41f4b71Sopenharmony_ciasync function example() { 3534e41f4b71Sopenharmony_ci console.info('addResourceByArrayBufferDemo'); 3535e41f4b71Sopenharmony_ci try { 3536e41f4b71Sopenharmony_ci let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE; 3537e41f4b71Sopenharmony_ci let extension: string = 'jpg'; 3538e41f4b71Sopenharmony_ci let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, photoType, extension); 3539e41f4b71Sopenharmony_ci let buffer: ArrayBuffer = new ArrayBuffer(2048); 3540e41f4b71Sopenharmony_ci assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, buffer); 3541e41f4b71Sopenharmony_ci await phAccessHelper.applyChanges(assetChangeRequest); 3542e41f4b71Sopenharmony_ci console.info('addResourceByArrayBuffer successfully'); 3543e41f4b71Sopenharmony_ci } catch (err) { 3544e41f4b71Sopenharmony_ci console.error(`addResourceByArrayBufferDemo failed with error: ${err.code}, ${err.message}`); 3545e41f4b71Sopenharmony_ci } 3546e41f4b71Sopenharmony_ci} 3547e41f4b71Sopenharmony_ci``` 3548e41f4b71Sopenharmony_ci 3549e41f4b71Sopenharmony_ci### saveCameraPhoto<sup>12+</sup> 3550e41f4b71Sopenharmony_ci 3551e41f4b71Sopenharmony_cisaveCameraPhoto(): void 3552e41f4b71Sopenharmony_ci 3553e41f4b71Sopenharmony_ci保存相机拍摄的照片。 3554e41f4b71Sopenharmony_ci 3555e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3556e41f4b71Sopenharmony_ci 3557e41f4b71Sopenharmony_ci**错误码:** 3558e41f4b71Sopenharmony_ci 3559e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3560e41f4b71Sopenharmony_ci 3561e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3562e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3563e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3564e41f4b71Sopenharmony_ci| 14000016 | Operation Not Support. | 3565e41f4b71Sopenharmony_ci 3566e41f4b71Sopenharmony_ci**示例:** 3567e41f4b71Sopenharmony_ci 3568e41f4b71Sopenharmony_ci```ts 3569e41f4b71Sopenharmony_ciasync function example(asset: photoAccessHelper.PhotoAsset) { 3570e41f4b71Sopenharmony_ci console.info('saveCameraPhotoDemo'); 3571e41f4b71Sopenharmony_ci try { 3572e41f4b71Sopenharmony_ci let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset); 3573e41f4b71Sopenharmony_ci assetChangeRequest.saveCameraPhoto(); 3574e41f4b71Sopenharmony_ci await phAccessHelper.applyChanges(assetChangeRequest); 3575e41f4b71Sopenharmony_ci console.info('apply saveCameraPhoto successfully'); 3576e41f4b71Sopenharmony_ci } catch (err) { 3577e41f4b71Sopenharmony_ci console.error(`apply saveCameraPhoto failed with error: ${err.code}, ${err.message}`); 3578e41f4b71Sopenharmony_ci } 3579e41f4b71Sopenharmony_ci} 3580e41f4b71Sopenharmony_ci``` 3581e41f4b71Sopenharmony_ci 3582e41f4b71Sopenharmony_ci### discardCameraPhoto<sup>12+</sup> 3583e41f4b71Sopenharmony_ci 3584e41f4b71Sopenharmony_cidiscardCameraPhoto(): void 3585e41f4b71Sopenharmony_ci 3586e41f4b71Sopenharmony_ci丢弃相机拍摄的照片。 3587e41f4b71Sopenharmony_ci 3588e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3589e41f4b71Sopenharmony_ci 3590e41f4b71Sopenharmony_ci**错误码:** 3591e41f4b71Sopenharmony_ci 3592e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3593e41f4b71Sopenharmony_ci 3594e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3595e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3596e41f4b71Sopenharmony_ci| 14000011 | Internal system error. | 3597e41f4b71Sopenharmony_ci| 14000016 | Operation Not Support. | 3598e41f4b71Sopenharmony_ci 3599e41f4b71Sopenharmony_ci**示例:** 3600e41f4b71Sopenharmony_ci 3601e41f4b71Sopenharmony_ci```ts 3602e41f4b71Sopenharmony_ciasync function example(asset: photoAccessHelper.PhotoAsset) { 3603e41f4b71Sopenharmony_ci console.info('discardCameraPhotoDemo'); 3604e41f4b71Sopenharmony_ci try { 3605e41f4b71Sopenharmony_ci let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset); 3606e41f4b71Sopenharmony_ci assetChangeRequest.discardCameraPhoto(); 3607e41f4b71Sopenharmony_ci await phAccessHelper.applyChanges(assetChangeRequest); 3608e41f4b71Sopenharmony_ci console.info('apply discardCameraPhoto successfully'); 3609e41f4b71Sopenharmony_ci } catch (err) { 3610e41f4b71Sopenharmony_ci console.error(`apply discardCameraPhoto failed with error: ${err.code}, ${err.message}`); 3611e41f4b71Sopenharmony_ci } 3612e41f4b71Sopenharmony_ci} 3613e41f4b71Sopenharmony_ci``` 3614e41f4b71Sopenharmony_ci 3615e41f4b71Sopenharmony_ci### setOrientation<sup>13+</sup> 3616e41f4b71Sopenharmony_ci 3617e41f4b71Sopenharmony_cisetOrientation(orientation: number): void 3618e41f4b71Sopenharmony_ci 3619e41f4b71Sopenharmony_ci修改图片的旋转角度。 3620e41f4b71Sopenharmony_ci 3621e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 3622e41f4b71Sopenharmony_ci 3623e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3624e41f4b71Sopenharmony_ci 3625e41f4b71Sopenharmony_ci**参数:** 3626e41f4b71Sopenharmony_ci 3627e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3628e41f4b71Sopenharmony_ci| ---------- | ------- | ---- | ---------------------------------- | 3629e41f4b71Sopenharmony_ci| orientation | number | 是 | 待修改的图片旋转角度,且只能为0、90、180、270。 | 3630e41f4b71Sopenharmony_ci 3631e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3632e41f4b71Sopenharmony_ci 3633e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3634e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3635e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3636e41f4b71Sopenharmony_ci 3637e41f4b71Sopenharmony_ci**示例:** 3638e41f4b71Sopenharmony_ci 3639e41f4b71Sopenharmony_ci```ts 3640e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 3641e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3642e41f4b71Sopenharmony_ci 3643e41f4b71Sopenharmony_ciasync function example() { 3644e41f4b71Sopenharmony_ci console.info('setOrientationDemo'); 3645e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3646e41f4b71Sopenharmony_ci let fetchOption: photoAccessHelper.FetchOptions = { 3647e41f4b71Sopenharmony_ci fetchColumns: [], 3648e41f4b71Sopenharmony_ci predicates: predicates 3649e41f4b71Sopenharmony_ci }; 3650e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 3651e41f4b71Sopenharmony_ci let asset = await fetchResult.getFirstObject(); 3652e41f4b71Sopenharmony_ci let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset); 3653e41f4b71Sopenharmony_ci assetChangeRequest.setOrientation(90); 3654e41f4b71Sopenharmony_ci phAccessHelper.applyChanges(assetChangeRequest).then(() => { 3655e41f4b71Sopenharmony_ci console.info('apply setOrientation successfully'); 3656e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3657e41f4b71Sopenharmony_ci console.error(`apply setOrientation failed with error: ${err.code}, ${err.message}`); 3658e41f4b71Sopenharmony_ci }); 3659e41f4b71Sopenharmony_ci} 3660e41f4b71Sopenharmony_ci``` 3661e41f4b71Sopenharmony_ci 3662e41f4b71Sopenharmony_ci## MediaAlbumChangeRequest<sup>11+</sup> 3663e41f4b71Sopenharmony_ci 3664e41f4b71Sopenharmony_ci相册变更请求。 3665e41f4b71Sopenharmony_ci 3666e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3667e41f4b71Sopenharmony_ci 3668e41f4b71Sopenharmony_ci### constructor<sup>11+</sup> 3669e41f4b71Sopenharmony_ci 3670e41f4b71Sopenharmony_ciconstructor(album: Album) 3671e41f4b71Sopenharmony_ci 3672e41f4b71Sopenharmony_ci构造函数。 3673e41f4b71Sopenharmony_ci 3674e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3675e41f4b71Sopenharmony_ci 3676e41f4b71Sopenharmony_ci**参数:** 3677e41f4b71Sopenharmony_ci 3678e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3679e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------- | 3680e41f4b71Sopenharmony_ci| album | [Album](#album) | 是 | 需要变更的相册。 | 3681e41f4b71Sopenharmony_ci 3682e41f4b71Sopenharmony_ci**错误码:** 3683e41f4b71Sopenharmony_ci 3684e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3685e41f4b71Sopenharmony_ci 3686e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3687e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3688e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3689e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3690e41f4b71Sopenharmony_ci 3691e41f4b71Sopenharmony_ci**示例:** 3692e41f4b71Sopenharmony_ci 3693e41f4b71Sopenharmony_ci```ts 3694e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 3695e41f4b71Sopenharmony_ci 3696e41f4b71Sopenharmony_ciasync function example() { 3697e41f4b71Sopenharmony_ci console.info('MediaAlbumChangeRequest constructorDemo'); 3698e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3699e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 3700e41f4b71Sopenharmony_ci fetchColumns: [], 3701e41f4b71Sopenharmony_ci predicates: predicates 3702e41f4b71Sopenharmony_ci }; 3703e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions); 3704e41f4b71Sopenharmony_ci let album: photoAccessHelper.Album = await fetchResult.getFirstObject(); 3705e41f4b71Sopenharmony_ci let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 3706e41f4b71Sopenharmony_ci} 3707e41f4b71Sopenharmony_ci``` 3708e41f4b71Sopenharmony_ci 3709e41f4b71Sopenharmony_ci### getAlbum<sup>11+</sup> 3710e41f4b71Sopenharmony_ci 3711e41f4b71Sopenharmony_cigetAlbum(): Album 3712e41f4b71Sopenharmony_ci 3713e41f4b71Sopenharmony_ci获取当前相册变更请求中的相册。 3714e41f4b71Sopenharmony_ci 3715e41f4b71Sopenharmony_ci**注意**:对于创建相册的变更请求,在调用[applyChanges](#applychanges11)提交生效之前,该接口返回null。 3716e41f4b71Sopenharmony_ci 3717e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3718e41f4b71Sopenharmony_ci 3719e41f4b71Sopenharmony_ci**返回值:** 3720e41f4b71Sopenharmony_ci 3721e41f4b71Sopenharmony_ci| 类型 | 说明 | 3722e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 3723e41f4b71Sopenharmony_ci| [Album](#album) | 返回当前相册变更请求中的相册。 | 3724e41f4b71Sopenharmony_ci 3725e41f4b71Sopenharmony_ci**错误码:** 3726e41f4b71Sopenharmony_ci 3727e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3728e41f4b71Sopenharmony_ci 3729e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3730e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3731e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 3732e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3733e41f4b71Sopenharmony_ci 3734e41f4b71Sopenharmony_ci**示例:** 3735e41f4b71Sopenharmony_ci 3736e41f4b71Sopenharmony_ci```ts 3737e41f4b71Sopenharmony_ciasync function example() { 3738e41f4b71Sopenharmony_ci console.info('getAlbumDemo'); 3739e41f4b71Sopenharmony_ci try { 3740e41f4b71Sopenharmony_ci // 请确保图库内存在用户相册 3741e41f4b71Sopenharmony_ci let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 3742e41f4b71Sopenharmony_ci let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 3743e41f4b71Sopenharmony_ci let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 3744e41f4b71Sopenharmony_ci let changeRequestAlbum: photoAccessHelper.Album = albumChangeRequest.getAlbum(); 3745e41f4b71Sopenharmony_ci console.info('change request album uri: ' + changeRequestAlbum.albumUri); 3746e41f4b71Sopenharmony_ci } catch (err) { 3747e41f4b71Sopenharmony_ci console.error(`getAlbumDemo failed with error: ${err.code}, ${err.message}`); 3748e41f4b71Sopenharmony_ci } 3749e41f4b71Sopenharmony_ci} 3750e41f4b71Sopenharmony_ci``` 3751e41f4b71Sopenharmony_ci 3752e41f4b71Sopenharmony_ci### setAlbumName<sup>11+</sup> 3753e41f4b71Sopenharmony_ci 3754e41f4b71Sopenharmony_cisetAlbumName(name: string): void 3755e41f4b71Sopenharmony_ci 3756e41f4b71Sopenharmony_ci设置相册名称。 3757e41f4b71Sopenharmony_ci 3758e41f4b71Sopenharmony_ci相册名的参数规格为: 3759e41f4b71Sopenharmony_ci- 相册名字符串长度为1~255。 3760e41f4b71Sopenharmony_ci- 不允许出现非法字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ] 3761e41f4b71Sopenharmony_ci- 英文字符大小写不敏感。 3762e41f4b71Sopenharmony_ci- 相册名不允许重名。 3763e41f4b71Sopenharmony_ci 3764e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3765e41f4b71Sopenharmony_ci 3766e41f4b71Sopenharmony_ci**参数:** 3767e41f4b71Sopenharmony_ci 3768e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3769e41f4b71Sopenharmony_ci| ---------- | ------- | ---- | ---------------------------------- | 3770e41f4b71Sopenharmony_ci| name | string | 是 | 待设置的相册名称。| 3771e41f4b71Sopenharmony_ci 3772e41f4b71Sopenharmony_ci**错误码:** 3773e41f4b71Sopenharmony_ci 3774e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3775e41f4b71Sopenharmony_ci 3776e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3777e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3778e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3779e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3780e41f4b71Sopenharmony_ci 3781e41f4b71Sopenharmony_ci**示例:** 3782e41f4b71Sopenharmony_ci 3783e41f4b71Sopenharmony_ci```ts 3784e41f4b71Sopenharmony_ciasync function example() { 3785e41f4b71Sopenharmony_ci console.info('setAlbumNameDemo'); 3786e41f4b71Sopenharmony_ci try { 3787e41f4b71Sopenharmony_ci let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 3788e41f4b71Sopenharmony_ci let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 3789e41f4b71Sopenharmony_ci let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 3790e41f4b71Sopenharmony_ci let newAlbumName: string = 'newAlbumName' + new Date().getTime(); 3791e41f4b71Sopenharmony_ci albumChangeRequest.setAlbumName(newAlbumName); 3792e41f4b71Sopenharmony_ci await phAccessHelper.applyChanges(albumChangeRequest); 3793e41f4b71Sopenharmony_ci console.info('setAlbumName successfully'); 3794e41f4b71Sopenharmony_ci } catch (err) { 3795e41f4b71Sopenharmony_ci console.error(`setAlbumNameDemo failed with error: ${err.code}, ${err.message}`); 3796e41f4b71Sopenharmony_ci } 3797e41f4b71Sopenharmony_ci} 3798e41f4b71Sopenharmony_ci``` 3799e41f4b71Sopenharmony_ci 3800e41f4b71Sopenharmony_ci### addAssets<sup>11+</sup> 3801e41f4b71Sopenharmony_ci 3802e41f4b71Sopenharmony_ciaddAssets(assets: Array<PhotoAsset>): void 3803e41f4b71Sopenharmony_ci 3804e41f4b71Sopenharmony_ci向相册中添加资产。 3805e41f4b71Sopenharmony_ci 3806e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3807e41f4b71Sopenharmony_ci 3808e41f4b71Sopenharmony_ci**参数:** 3809e41f4b71Sopenharmony_ci 3810e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3811e41f4b71Sopenharmony_ci| ---------- | ------- | ---- | ---------------------------------- | 3812e41f4b71Sopenharmony_ci| assets | Array<[PhotoAsset](#photoasset)> | 是 | 待添加到相册中的资产数组。 | 3813e41f4b71Sopenharmony_ci 3814e41f4b71Sopenharmony_ci**错误码:** 3815e41f4b71Sopenharmony_ci 3816e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3817e41f4b71Sopenharmony_ci 3818e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3819e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3820e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3821e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3822e41f4b71Sopenharmony_ci| 14000016 | Operation Not Support. | 3823e41f4b71Sopenharmony_ci 3824e41f4b71Sopenharmony_ci**示例:** 3825e41f4b71Sopenharmony_ci 3826e41f4b71Sopenharmony_ci```ts 3827e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 3828e41f4b71Sopenharmony_ci 3829e41f4b71Sopenharmony_ciasync function example() { 3830e41f4b71Sopenharmony_ci console.info('addAssetsDemo'); 3831e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3832e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 3833e41f4b71Sopenharmony_ci fetchColumns: [], 3834e41f4b71Sopenharmony_ci predicates: predicates 3835e41f4b71Sopenharmony_ci }; 3836e41f4b71Sopenharmony_ci try { 3837e41f4b71Sopenharmony_ci // 请确保图库内存在用户相册和照片 3838e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 3839e41f4b71Sopenharmony_ci let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 3840e41f4b71Sopenharmony_ci let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 3841e41f4b71Sopenharmony_ci let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 3842e41f4b71Sopenharmony_ci let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 3843e41f4b71Sopenharmony_ci albumChangeRequest.addAssets([asset]); 3844e41f4b71Sopenharmony_ci await phAccessHelper.applyChanges(albumChangeRequest); 3845e41f4b71Sopenharmony_ci console.info('addAssets successfully'); 3846e41f4b71Sopenharmony_ci } catch (err) { 3847e41f4b71Sopenharmony_ci console.error(`addAssetsDemo failed with error: ${err.code}, ${err.message}`); 3848e41f4b71Sopenharmony_ci } 3849e41f4b71Sopenharmony_ci} 3850e41f4b71Sopenharmony_ci``` 3851e41f4b71Sopenharmony_ci 3852e41f4b71Sopenharmony_ci### removeAssets<sup>11+</sup> 3853e41f4b71Sopenharmony_ci 3854e41f4b71Sopenharmony_ciremoveAssets(assets: Array<PhotoAsset>): void 3855e41f4b71Sopenharmony_ci 3856e41f4b71Sopenharmony_ci从相册中移除资产。 3857e41f4b71Sopenharmony_ci 3858e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3859e41f4b71Sopenharmony_ci 3860e41f4b71Sopenharmony_ci**参数:** 3861e41f4b71Sopenharmony_ci 3862e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3863e41f4b71Sopenharmony_ci| ---------- | ------- | ---- | ---------------------------------- | 3864e41f4b71Sopenharmony_ci| assets | Array<[PhotoAsset](#photoasset)> | 是 | 待从相册中移除的资产数组。 | 3865e41f4b71Sopenharmony_ci 3866e41f4b71Sopenharmony_ci**错误码:** 3867e41f4b71Sopenharmony_ci 3868e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3869e41f4b71Sopenharmony_ci 3870e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3871e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3872e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3873e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3874e41f4b71Sopenharmony_ci| 14000016 | Operation Not Support. | 3875e41f4b71Sopenharmony_ci 3876e41f4b71Sopenharmony_ci**示例:** 3877e41f4b71Sopenharmony_ci 3878e41f4b71Sopenharmony_ci```ts 3879e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 3880e41f4b71Sopenharmony_ci 3881e41f4b71Sopenharmony_ciasync function example() { 3882e41f4b71Sopenharmony_ci console.info('removeAssetsDemo'); 3883e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3884e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 3885e41f4b71Sopenharmony_ci fetchColumns: [], 3886e41f4b71Sopenharmony_ci predicates: predicates 3887e41f4b71Sopenharmony_ci }; 3888e41f4b71Sopenharmony_ci try { 3889e41f4b71Sopenharmony_ci let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 3890e41f4b71Sopenharmony_ci let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 3891e41f4b71Sopenharmony_ci let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions); 3892e41f4b71Sopenharmony_ci let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 3893e41f4b71Sopenharmony_ci 3894e41f4b71Sopenharmony_ci let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 3895e41f4b71Sopenharmony_ci albumChangeRequest.removeAssets([asset]); 3896e41f4b71Sopenharmony_ci await phAccessHelper.applyChanges(albumChangeRequest); 3897e41f4b71Sopenharmony_ci console.info('removeAssets successfully'); 3898e41f4b71Sopenharmony_ci } catch (err) { 3899e41f4b71Sopenharmony_ci console.error(`removeAssetsDemo failed with error: ${err.code}, ${err.message}`); 3900e41f4b71Sopenharmony_ci } 3901e41f4b71Sopenharmony_ci} 3902e41f4b71Sopenharmony_ci``` 3903e41f4b71Sopenharmony_ci 3904e41f4b71Sopenharmony_ci## MediaAssetManager<sup>11+</sup> 3905e41f4b71Sopenharmony_ci 3906e41f4b71Sopenharmony_ci### requestImage<sup>11+</sup> 3907e41f4b71Sopenharmony_ci 3908e41f4b71Sopenharmony_cistatic requestImage(context: Context, asset: PhotoAsset, requestOptions: RequestOptions, dataHandler: MediaAssetDataHandler<image.ImageSource>): Promise<string> 3909e41f4b71Sopenharmony_ci 3910e41f4b71Sopenharmony_ci根据不同的策略模式,请求图片资源。 3911e41f4b71Sopenharmony_ci 3912e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3913e41f4b71Sopenharmony_ci 3914e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 3915e41f4b71Sopenharmony_ci 3916e41f4b71Sopenharmony_ci- 对于未申请'ohos.permission.READ_IMAGEVIDEO'权限的应用,可以通过picker的方式调用该接口来请求图片资源,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-photoviewpicker.md#指定uri获取图片或视频资源)。 3917e41f4b71Sopenharmony_ci- 对于本应用保存到媒体库的图片资源,应用无需额外申请'ohos.permission.READ_IMAGEVIDEO'权限即可访问。 3918e41f4b71Sopenharmony_ci 3919e41f4b71Sopenharmony_ci**参数:** 3920e41f4b71Sopenharmony_ci 3921e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3922e41f4b71Sopenharmony_ci|----------------|-----------------------------------------------------------------------------------------------------------| ---- | ------------------------- | 3923e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。 | 3924e41f4b71Sopenharmony_ci| asset | [PhotoAsset](#photoasset) | 是 | 待请求的的媒体文件对象。 | 3925e41f4b71Sopenharmony_ci| requestOptions | [RequestOptions](#requestoptions11) | 是 | 图片请求策略模式配置项。| 3926e41f4b71Sopenharmony_ci| dataHandler | [MediaAssetDataHandler](#mediaassetdatahandler11)<[image.ImageSource](../apis-image-kit/js-apis-image.md#imagesource)> | 是 | 媒体资源处理器,当所请求的图片资源准备完成时会触发回调。| 3927e41f4b71Sopenharmony_ci 3928e41f4b71Sopenharmony_ci**返回值:** 3929e41f4b71Sopenharmony_ci 3930e41f4b71Sopenharmony_ci| 类型 | 说明 | 3931e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 3932e41f4b71Sopenharmony_ci| Promise\<string> | Promise对象,返回请求id,可用于[cancelRequest](#cancelrequest12)取消请求。 | 3933e41f4b71Sopenharmony_ci 3934e41f4b71Sopenharmony_ci**错误码:** 3935e41f4b71Sopenharmony_ci 3936e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3937e41f4b71Sopenharmony_ci 3938e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3939e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 3940e41f4b71Sopenharmony_ci| 201 | Permission denied | 3941e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3942e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 3943e41f4b71Sopenharmony_ci 3944e41f4b71Sopenharmony_ci**示例:** 3945e41f4b71Sopenharmony_ci 3946e41f4b71Sopenharmony_ci```ts 3947e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 3948e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 3949e41f4b71Sopenharmony_ci 3950e41f4b71Sopenharmony_ciclass MediaHandler implements photoAccessHelper.MediaAssetDataHandler<image.ImageSource> { 3951e41f4b71Sopenharmony_ci onDataPrepared(data: image.ImageSource) { 3952e41f4b71Sopenharmony_ci if (data === undefined) { 3953e41f4b71Sopenharmony_ci console.error('Error occurred when preparing data'); 3954e41f4b71Sopenharmony_ci return; 3955e41f4b71Sopenharmony_ci } 3956e41f4b71Sopenharmony_ci console.info('on image data prepared'); 3957e41f4b71Sopenharmony_ci } 3958e41f4b71Sopenharmony_ci} 3959e41f4b71Sopenharmony_ci 3960e41f4b71Sopenharmony_ciasync function example() { 3961e41f4b71Sopenharmony_ci console.info('requestImage'); 3962e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3963e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 3964e41f4b71Sopenharmony_ci fetchColumns: [], 3965e41f4b71Sopenharmony_ci predicates: predicates 3966e41f4b71Sopenharmony_ci }; 3967e41f4b71Sopenharmony_ci let requestOptions: photoAccessHelper.RequestOptions = { 3968e41f4b71Sopenharmony_ci deliveryMode: photoAccessHelper.DeliveryMode.HIGH_QUALITY_MODE, 3969e41f4b71Sopenharmony_ci } 3970e41f4b71Sopenharmony_ci const handler = new MediaHandler(); 3971e41f4b71Sopenharmony_ci 3972e41f4b71Sopenharmony_ci phAccessHelper.getAssets(fetchOptions, async (err, fetchResult) => { 3973e41f4b71Sopenharmony_ci console.info('fetchResult success'); 3974e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 3975e41f4b71Sopenharmony_ci await photoAccessHelper.MediaAssetManager.requestImage(context, photoAsset, requestOptions, handler); 3976e41f4b71Sopenharmony_ci console.info('requestImage successfully'); 3977e41f4b71Sopenharmony_ci }); 3978e41f4b71Sopenharmony_ci} 3979e41f4b71Sopenharmony_ci``` 3980e41f4b71Sopenharmony_ci 3981e41f4b71Sopenharmony_ci### requestImageData<sup>11+</sup> 3982e41f4b71Sopenharmony_ci 3983e41f4b71Sopenharmony_cistatic requestImageData(context: Context, asset: PhotoAsset, requestOptions: RequestOptions, dataHandler: MediaAssetDataHandler<ArrayBuffer>): Promise<string> 3984e41f4b71Sopenharmony_ci 3985e41f4b71Sopenharmony_ci根据不同的策略模式,请求图片资源数据。 3986e41f4b71Sopenharmony_ci 3987e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3988e41f4b71Sopenharmony_ci 3989e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 3990e41f4b71Sopenharmony_ci 3991e41f4b71Sopenharmony_ci- 对于未申请'ohos.permission.READ_IMAGEVIDEO'权限的应用,可以通过picker的方式调用该接口来请求图片资源数据,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-photoviewpicker.md#指定uri获取图片或视频资源)。 3992e41f4b71Sopenharmony_ci- 对于本应用保存到媒体库的图片资源,应用无需额外申请'ohos.permission.READ_IMAGEVIDEO'权限即可访问。 3993e41f4b71Sopenharmony_ci 3994e41f4b71Sopenharmony_ci**参数:** 3995e41f4b71Sopenharmony_ci 3996e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3997e41f4b71Sopenharmony_ci| -------- |----------------------------------------------------------------------| ---- | ------------------------- | 3998e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。 | 3999e41f4b71Sopenharmony_ci| asset | [PhotoAsset](#photoasset) | 是 | 待请求的的媒体文件对象。 | 4000e41f4b71Sopenharmony_ci| requestOptions | [RequestOptions](#requestoptions11) | 是 | 图片请求策略模式配置项。 | 4001e41f4b71Sopenharmony_ci| dataHandler | [MediaAssetDataHandler](#mediaassetdatahandler11)<ArrayBuffer> | 是 | 媒体资源处理器,当所请求的图片资源准备完成时会触发回调。| 4002e41f4b71Sopenharmony_ci 4003e41f4b71Sopenharmony_ci**返回值:** 4004e41f4b71Sopenharmony_ci 4005e41f4b71Sopenharmony_ci| 类型 | 说明 | 4006e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 4007e41f4b71Sopenharmony_ci| Promise\<string> | Promise对象,返回请求id,可用于[cancelRequest](#cancelrequest12)取消请求。 | 4008e41f4b71Sopenharmony_ci 4009e41f4b71Sopenharmony_ci**错误码:** 4010e41f4b71Sopenharmony_ci 4011e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4012e41f4b71Sopenharmony_ci 4013e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4014e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 4015e41f4b71Sopenharmony_ci| 201 | Permission denied | 4016e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4017e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 4018e41f4b71Sopenharmony_ci 4019e41f4b71Sopenharmony_ci**示例:** 4020e41f4b71Sopenharmony_ci 4021e41f4b71Sopenharmony_ci```ts 4022e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 4023e41f4b71Sopenharmony_ciclass MediaDataHandler implements photoAccessHelper.MediaAssetDataHandler<ArrayBuffer> { 4024e41f4b71Sopenharmony_ci onDataPrepared(data: ArrayBuffer) { 4025e41f4b71Sopenharmony_ci if (data === undefined) { 4026e41f4b71Sopenharmony_ci console.error('Error occurred when preparing data'); 4027e41f4b71Sopenharmony_ci return; 4028e41f4b71Sopenharmony_ci } 4029e41f4b71Sopenharmony_ci console.info('on image data prepared'); 4030e41f4b71Sopenharmony_ci } 4031e41f4b71Sopenharmony_ci} 4032e41f4b71Sopenharmony_ci 4033e41f4b71Sopenharmony_ciasync function example() { 4034e41f4b71Sopenharmony_ci console.info('requestImageData'); 4035e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4036e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 4037e41f4b71Sopenharmony_ci fetchColumns: [], 4038e41f4b71Sopenharmony_ci predicates: predicates 4039e41f4b71Sopenharmony_ci }; 4040e41f4b71Sopenharmony_ci let requestOptions: photoAccessHelper.RequestOptions = { 4041e41f4b71Sopenharmony_ci deliveryMode: photoAccessHelper.DeliveryMode.HIGH_QUALITY_MODE, 4042e41f4b71Sopenharmony_ci } 4043e41f4b71Sopenharmony_ci const handler = new MediaDataHandler(); 4044e41f4b71Sopenharmony_ci 4045e41f4b71Sopenharmony_ci phAccessHelper.getAssets(fetchOptions, async (err, fetchResult) => { 4046e41f4b71Sopenharmony_ci console.info('fetchResult success'); 4047e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 4048e41f4b71Sopenharmony_ci await photoAccessHelper.MediaAssetManager.requestImageData(context, photoAsset, requestOptions, handler); 4049e41f4b71Sopenharmony_ci console.info('requestImageData successfully'); 4050e41f4b71Sopenharmony_ci }); 4051e41f4b71Sopenharmony_ci} 4052e41f4b71Sopenharmony_ci``` 4053e41f4b71Sopenharmony_ci 4054e41f4b71Sopenharmony_ci### requestMovingPhoto<sup>12+</sup> 4055e41f4b71Sopenharmony_ci 4056e41f4b71Sopenharmony_cistatic requestMovingPhoto(context: Context, asset: PhotoAsset, requestOptions: RequestOptions, dataHandler: MediaAssetDataHandler<MovingPhoto>): Promise<string> 4057e41f4b71Sopenharmony_ci 4058e41f4b71Sopenharmony_ci根据不同的策略模式,请求动态照片对象。动态照片对象可用于请求动态照片的资源数据。 4059e41f4b71Sopenharmony_ci 4060e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4061e41f4b71Sopenharmony_ci 4062e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 4063e41f4b71Sopenharmony_ci 4064e41f4b71Sopenharmony_ci- 对于未申请'ohos.permission.READ_IMAGEVIDEO'权限的应用,可以通过picker的方式调用该接口来请求动态照片对象,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-photoviewpicker.md#指定uri获取图片或视频资源)。 4065e41f4b71Sopenharmony_ci- 对于本应用保存到媒体库的动态照片资源,应用无需额外申请'ohos.permission.READ_IMAGEVIDEO'权限即可访问。 4066e41f4b71Sopenharmony_ci 4067e41f4b71Sopenharmony_ci**参数:** 4068e41f4b71Sopenharmony_ci 4069e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4070e41f4b71Sopenharmony_ci| -------- |----------------------------------------------------------------------| ---- | ------------------------- | 4071e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。 | 4072e41f4b71Sopenharmony_ci| asset | [PhotoAsset](#photoasset) | 是 | 待请求的的媒体文件对象。 | 4073e41f4b71Sopenharmony_ci| requestOptions | [RequestOptions](#requestoptions11) | 是 | 图片请求策略模式配置项。| 4074e41f4b71Sopenharmony_ci| dataHandler | [MediaAssetDataHandler](#mediaassetdatahandler11)<[MovingPhoto](#movingphoto12)> | 是 | 媒体资源处理器,当所请求的图片资源准备完成时会触发回调。| 4075e41f4b71Sopenharmony_ci 4076e41f4b71Sopenharmony_ci**返回值:** 4077e41f4b71Sopenharmony_ci 4078e41f4b71Sopenharmony_ci| 类型 | 说明 | 4079e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 4080e41f4b71Sopenharmony_ci| Promise\<string> | Promise对象,返回请求id,可用于[cancelRequest](#cancelrequest12)取消请求。 | 4081e41f4b71Sopenharmony_ci 4082e41f4b71Sopenharmony_ci**错误码:** 4083e41f4b71Sopenharmony_ci 4084e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4085e41f4b71Sopenharmony_ci 4086e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4087e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 4088e41f4b71Sopenharmony_ci| 201 | Permission denied | 4089e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4090e41f4b71Sopenharmony_ci| 14000011 | System inner fail | 4091e41f4b71Sopenharmony_ci 4092e41f4b71Sopenharmony_ci**示例:** 4093e41f4b71Sopenharmony_ci 4094e41f4b71Sopenharmony_ci```ts 4095e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 4096e41f4b71Sopenharmony_ci 4097e41f4b71Sopenharmony_ciclass MovingPhotoHandler implements photoAccessHelper.MediaAssetDataHandler<photoAccessHelper.MovingPhoto> { 4098e41f4b71Sopenharmony_ci async onDataPrepared(movingPhoto: photoAccessHelper.MovingPhoto) { 4099e41f4b71Sopenharmony_ci if (movingPhoto === undefined) { 4100e41f4b71Sopenharmony_ci console.error('Error occurred when preparing data'); 4101e41f4b71Sopenharmony_ci return; 4102e41f4b71Sopenharmony_ci } 4103e41f4b71Sopenharmony_ci console.info("moving photo acquired successfully, uri: " + movingPhoto.getUri()); 4104e41f4b71Sopenharmony_ci } 4105e41f4b71Sopenharmony_ci} 4106e41f4b71Sopenharmony_ci 4107e41f4b71Sopenharmony_ciasync function example() { 4108e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4109e41f4b71Sopenharmony_ci predicates.equalTo(photoAccessHelper.PhotoKeys.PHOTO_SUBTYPE, photoAccessHelper.PhotoSubtype.MOVING_PHOTO); 4110e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 4111e41f4b71Sopenharmony_ci fetchColumns: [], 4112e41f4b71Sopenharmony_ci predicates: predicates 4113e41f4b71Sopenharmony_ci }; 4114e41f4b71Sopenharmony_ci // 请确保图库内存在动态照片 4115e41f4b71Sopenharmony_ci let assetResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 4116e41f4b71Sopenharmony_ci let asset: photoAccessHelper.PhotoAsset = await assetResult.getFirstObject(); 4117e41f4b71Sopenharmony_ci let requestOptions: photoAccessHelper.RequestOptions = { 4118e41f4b71Sopenharmony_ci deliveryMode: photoAccessHelper.DeliveryMode.FAST_MODE, 4119e41f4b71Sopenharmony_ci } 4120e41f4b71Sopenharmony_ci const handler = new MovingPhotoHandler(); 4121e41f4b71Sopenharmony_ci try { 4122e41f4b71Sopenharmony_ci let requestId: string = await photoAccessHelper.MediaAssetManager.requestMovingPhoto(context, asset, requestOptions, handler); 4123e41f4b71Sopenharmony_ci console.info("moving photo requested successfully, requestId: " + requestId); 4124e41f4b71Sopenharmony_ci } catch (err) { 4125e41f4b71Sopenharmony_ci console.error(`failed to request moving photo, error code is ${err.code}, message is ${err.message}`); 4126e41f4b71Sopenharmony_ci } 4127e41f4b71Sopenharmony_ci} 4128e41f4b71Sopenharmony_ci 4129e41f4b71Sopenharmony_ci``` 4130e41f4b71Sopenharmony_ci 4131e41f4b71Sopenharmony_ci### requestVideoFile<sup>12+</sup> 4132e41f4b71Sopenharmony_ci 4133e41f4b71Sopenharmony_cistatic requestVideoFile(context: Context, asset: PhotoAsset, requestOptions: RequestOptions, fileUri: string, dataHandler: MediaAssetDataHandler<boolean>): Promise<string> 4134e41f4b71Sopenharmony_ci 4135e41f4b71Sopenharmony_ci根据不同的策略模式,请求视频资源数据到沙箱路径。 4136e41f4b71Sopenharmony_ci 4137e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4138e41f4b71Sopenharmony_ci 4139e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 4140e41f4b71Sopenharmony_ci 4141e41f4b71Sopenharmony_ci- 对于未申请'ohos.permission.READ_IMAGEVIDEO'权限的应用,可以通过picker的方式调用该接口来请求视频资源数据到应用沙箱,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-photoviewpicker.md#指定uri获取图片或视频资源)。 4142e41f4b71Sopenharmony_ci- 对于本应用保存到媒体库的视频资源,应用无需额外申请'ohos.permission.READ_IMAGEVIDEO'权限即可访问。 4143e41f4b71Sopenharmony_ci 4144e41f4b71Sopenharmony_ci**参数:** 4145e41f4b71Sopenharmony_ci 4146e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4147e41f4b71Sopenharmony_ci| -------- |----------------------------------------------------------------------| ---- | ------------------------- | 4148e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。| 4149e41f4b71Sopenharmony_ci| asset | [PhotoAsset](#photoasset) | 是 | 待请求的的媒体文件对象。 | 4150e41f4b71Sopenharmony_ci| requestOptions | [RequestOptions](#requestoptions11) | 是 | 视频请求策略模式配置项。| 4151e41f4b71Sopenharmony_ci| fileUri| string | 是 | 目标写入沙箱路径Uri。 | 4152e41f4b71Sopenharmony_ci| dataHandler | [MediaAssetDataHandler](#mediaassetdatahandler11)<boolean> | 是 | 媒体资源处理器,当所请求的视频资源写入完成时会触发回调。| 4153e41f4b71Sopenharmony_ci 4154e41f4b71Sopenharmony_ci**返回值:** 4155e41f4b71Sopenharmony_ci 4156e41f4b71Sopenharmony_ci| 类型 | 说明 | 4157e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 4158e41f4b71Sopenharmony_ci| Promise\<string> | Promise对象,返回请求id,可用于[cancelRequest](#cancelrequest12)取消请求。 | 4159e41f4b71Sopenharmony_ci 4160e41f4b71Sopenharmony_ci**错误码:** 4161e41f4b71Sopenharmony_ci 4162e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4163e41f4b71Sopenharmony_ci 4164e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4165e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 4166e41f4b71Sopenharmony_ci| 201 | Permission denied | 4167e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4168e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 4169e41f4b71Sopenharmony_ci 4170e41f4b71Sopenharmony_ci**示例:** 4171e41f4b71Sopenharmony_ci 4172e41f4b71Sopenharmony_ci```ts 4173e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 4174e41f4b71Sopenharmony_ciclass MediaDataHandler implements photoAccessHelper.MediaAssetDataHandler<boolean> { 4175e41f4b71Sopenharmony_ci onDataPrepared(data: boolean) { 4176e41f4b71Sopenharmony_ci console.info('on video request status prepared'); 4177e41f4b71Sopenharmony_ci } 4178e41f4b71Sopenharmony_ci} 4179e41f4b71Sopenharmony_ci 4180e41f4b71Sopenharmony_ciasync function example() { 4181e41f4b71Sopenharmony_ci console.info('requestVideoFile'); 4182e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4183e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 4184e41f4b71Sopenharmony_ci fetchColumns: [], 4185e41f4b71Sopenharmony_ci predicates: predicates 4186e41f4b71Sopenharmony_ci }; 4187e41f4b71Sopenharmony_ci let requestOptions: photoAccessHelper.RequestOptions = { 4188e41f4b71Sopenharmony_ci deliveryMode: photoAccessHelper.DeliveryMode.HIGH_QUALITY_MODE, 4189e41f4b71Sopenharmony_ci } 4190e41f4b71Sopenharmony_ci const handler = new MediaDataHandler(); 4191e41f4b71Sopenharmony_ci let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.mp4'; 4192e41f4b71Sopenharmony_ci phAccessHelper.getAssets(fetchOptions, async (err, fetchResult) => { 4193e41f4b71Sopenharmony_ci console.info('fetchResult success'); 4194e41f4b71Sopenharmony_ci let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 4195e41f4b71Sopenharmony_ci await photoAccessHelper.MediaAssetManager.requestVideoFile(context, photoAsset, requestOptions, fileUri, handler); 4196e41f4b71Sopenharmony_ci console.info('requestVideoFile successfully'); 4197e41f4b71Sopenharmony_ci }); 4198e41f4b71Sopenharmony_ci} 4199e41f4b71Sopenharmony_ci``` 4200e41f4b71Sopenharmony_ci 4201e41f4b71Sopenharmony_ci### cancelRequest<sup>12+</sup> 4202e41f4b71Sopenharmony_ci 4203e41f4b71Sopenharmony_cistatic cancelRequest(context: Context, requestId: string): Promise\<void> 4204e41f4b71Sopenharmony_ci 4205e41f4b71Sopenharmony_ci取消尚未触发回调的资产内容请求。 4206e41f4b71Sopenharmony_ci 4207e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4208e41f4b71Sopenharmony_ci 4209e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 4210e41f4b71Sopenharmony_ci 4211e41f4b71Sopenharmony_ci**参数:** 4212e41f4b71Sopenharmony_ci 4213e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4214e41f4b71Sopenharmony_ci| -------- |----------------------------------------------------------------------| ---- | ------------------------- | 4215e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。 | 4216e41f4b71Sopenharmony_ci| requestId | string | 是 | 需要取消的请求id。 | 4217e41f4b71Sopenharmony_ci 4218e41f4b71Sopenharmony_ci**返回值:** 4219e41f4b71Sopenharmony_ci 4220e41f4b71Sopenharmony_ci| 类型 | 说明 | 4221e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 4222e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象,返回void。 | 4223e41f4b71Sopenharmony_ci 4224e41f4b71Sopenharmony_ci**错误码:** 4225e41f4b71Sopenharmony_ci 4226e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4227e41f4b71Sopenharmony_ci 4228e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4229e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 4230e41f4b71Sopenharmony_ci| 201 | Permission denied | 4231e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4232e41f4b71Sopenharmony_ci| 14000011 | System inner fail | 4233e41f4b71Sopenharmony_ci 4234e41f4b71Sopenharmony_ci**示例:** 4235e41f4b71Sopenharmony_ci 4236e41f4b71Sopenharmony_ci```ts 4237e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 4238e41f4b71Sopenharmony_ci 4239e41f4b71Sopenharmony_ciasync function example() { 4240e41f4b71Sopenharmony_ci try { 4241e41f4b71Sopenharmony_ci let requestId: string = 'xxx-xxx'; // 应用需使用requestImage等接口返回的有效requestId 4242e41f4b71Sopenharmony_ci await photoAccessHelper.MediaAssetManager.cancelRequest(context, requestId); 4243e41f4b71Sopenharmony_ci console.info("request cancelled successfully"); 4244e41f4b71Sopenharmony_ci } catch (err) { 4245e41f4b71Sopenharmony_ci console.error(`cancelRequest failed with error: ${err.code}, ${err.message}`); 4246e41f4b71Sopenharmony_ci } 4247e41f4b71Sopenharmony_ci} 4248e41f4b71Sopenharmony_ci 4249e41f4b71Sopenharmony_ci``` 4250e41f4b71Sopenharmony_ci 4251e41f4b71Sopenharmony_ci### loadMovingPhoto<sup>12+</sup> 4252e41f4b71Sopenharmony_ci 4253e41f4b71Sopenharmony_cistatic loadMovingPhoto(context: Context, imageFileUri: string, videoFileUri: string): Promise\<MovingPhoto> 4254e41f4b71Sopenharmony_ci 4255e41f4b71Sopenharmony_ci加载应用沙箱的动态照片。 4256e41f4b71Sopenharmony_ci 4257e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4258e41f4b71Sopenharmony_ci 4259e41f4b71Sopenharmony_ci**参数:** 4260e41f4b71Sopenharmony_ci 4261e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4262e41f4b71Sopenharmony_ci| -------- |----------------------------------------------------------------------| ---- | ------------------------- | 4263e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入AbilityContext或者UIExtensionContext的实例。 | 4264e41f4b71Sopenharmony_ci| imageFileUri | string | 是 | 应用沙箱动态照片的图片uri。 | 4265e41f4b71Sopenharmony_ci| videoFileUri | string | 是 | 应用沙箱动态照片的视频uri。 | 4266e41f4b71Sopenharmony_ci 4267e41f4b71Sopenharmony_ci**返回值:** 4268e41f4b71Sopenharmony_ci 4269e41f4b71Sopenharmony_ci| 类型 | 说明 | 4270e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 4271e41f4b71Sopenharmony_ci| Promise\<MovingPhoto> | Promise对象,返回[MovingPhoto](#movingphoto12)实例。 | 4272e41f4b71Sopenharmony_ci 4273e41f4b71Sopenharmony_ci**错误码:** 4274e41f4b71Sopenharmony_ci 4275e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4276e41f4b71Sopenharmony_ci 4277e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4278e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 4279e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4280e41f4b71Sopenharmony_ci| 14000011 | Internal system error. | 4281e41f4b71Sopenharmony_ci 4282e41f4b71Sopenharmony_ci**示例:** 4283e41f4b71Sopenharmony_ci 4284e41f4b71Sopenharmony_ci```ts 4285e41f4b71Sopenharmony_ciasync function example() { 4286e41f4b71Sopenharmony_ci try { 4287e41f4b71Sopenharmony_ci let imageFileUri: string = 'file://com.example.temptest/data/storage/el2/base/haps/ImageFile.jpg'; // 应用沙箱动态照片的图片uri 4288e41f4b71Sopenharmony_ci let videoFileUri: string = 'file://com.example.temptest/data/storage/el2/base/haps/VideoFile.mp4'; // 应用沙箱动态照片的视频uri 4289e41f4b71Sopenharmony_ci let movingPhoto: photoAccessHelper.MovingPhoto = await photoAccessHelper.MediaAssetManager.loadMovingPhoto(context, imageFileUri, videoFileUri); 4290e41f4b71Sopenharmony_ci } catch (err) { 4291e41f4b71Sopenharmony_ci console.error(`loadMovingPhoto failed with error: ${err.code}, ${err.message}`); 4292e41f4b71Sopenharmony_ci } 4293e41f4b71Sopenharmony_ci} 4294e41f4b71Sopenharmony_ci 4295e41f4b71Sopenharmony_ci``` 4296e41f4b71Sopenharmony_ci 4297e41f4b71Sopenharmony_ci## MediaAssetDataHandler<sup>11+</sup> 4298e41f4b71Sopenharmony_ci 4299e41f4b71Sopenharmony_ci媒体资源处理器,应用在onDataPrepared方法中可自定义媒体资源处理逻辑。 4300e41f4b71Sopenharmony_ci 4301e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4302e41f4b71Sopenharmony_ci 4303e41f4b71Sopenharmony_ci### onDataPrepared<sup>11+</sup> 4304e41f4b71Sopenharmony_ci 4305e41f4b71Sopenharmony_cionDataPrepared(data: T, map?: Map<string, string>): void 4306e41f4b71Sopenharmony_ci 4307e41f4b71Sopenharmony_ci媒体资源就绪通知,当所请求的图片资源准备就绪时系统会回调此方法。如果资源准备出错,则回调的data为undefined。 4308e41f4b71Sopenharmony_ciT支持ArrayBuffer, [ImageSource](../apis-image-kit/js-apis-image.md#imagesource), [MovingPhoto](#movingphoto12)和boolean四种数据类型。 4309e41f4b71Sopenharmony_ci 4310e41f4b71Sopenharmony_cimap支持返回的信息: 4311e41f4b71Sopenharmony_ci| map键名 | 值说明 | 4312e41f4b71Sopenharmony_ci|----------|-------| 4313e41f4b71Sopenharmony_ci| 'quality' | 图片质量。高质量为'high',低质量为'low'。 | 4314e41f4b71Sopenharmony_ci 4315e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4316e41f4b71Sopenharmony_ci 4317e41f4b71Sopenharmony_ci**参数:** 4318e41f4b71Sopenharmony_ci 4319e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4320e41f4b71Sopenharmony_ci|------|---| ---- |-------------------------------------------------------------------------------| 4321e41f4b71Sopenharmony_ci| data | T | 是 | 已就绪的图片资源数据。泛型,支持ArrayBuffer, [ImageSource](../apis-image-kit/js-apis-image.md#imagesource), [MovingPhoto](#movingphoto12)和boolean四种数据类型。 | 4322e41f4b71Sopenharmony_ci| map<sup>12+</sup> | Map<string, string> | 否 | 用于获取图片资源的额外信息,如图片质量。 | 4323e41f4b71Sopenharmony_ci 4324e41f4b71Sopenharmony_ci**示例** 4325e41f4b71Sopenharmony_ci```ts 4326e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 4327e41f4b71Sopenharmony_ci 4328e41f4b71Sopenharmony_ciclass MediaHandler implements photoAccessHelper.MediaAssetDataHandler<image.ImageSource> { 4329e41f4b71Sopenharmony_ci onDataPrepared(data: image.ImageSource, map: Map<string, string>) { 4330e41f4b71Sopenharmony_ci if (data === undefined) { 4331e41f4b71Sopenharmony_ci console.error('Error occurred when preparing data'); 4332e41f4b71Sopenharmony_ci return; 4333e41f4b71Sopenharmony_ci } 4334e41f4b71Sopenharmony_ci // 自定义对ImageSource的处理逻辑 4335e41f4b71Sopenharmony_ci console.info('on image data prepared, photo quality is ' + map['quality']); 4336e41f4b71Sopenharmony_ci } 4337e41f4b71Sopenharmony_ci} 4338e41f4b71Sopenharmony_ci 4339e41f4b71Sopenharmony_ciclass MediaDataHandler implements photoAccessHelper.MediaAssetDataHandler<ArrayBuffer> { 4340e41f4b71Sopenharmony_ci onDataPrepared(data: ArrayBuffer, map: Map<string, string>) { 4341e41f4b71Sopenharmony_ci if (data === undefined) { 4342e41f4b71Sopenharmony_ci console.error('Error occurred when preparing data'); 4343e41f4b71Sopenharmony_ci return; 4344e41f4b71Sopenharmony_ci } 4345e41f4b71Sopenharmony_ci // 自定义对ArrayBuffer的处理逻辑 4346e41f4b71Sopenharmony_ci console.info('on image data prepared, photo quality is ' + map['quality']); 4347e41f4b71Sopenharmony_ci } 4348e41f4b71Sopenharmony_ci} 4349e41f4b71Sopenharmony_ci 4350e41f4b71Sopenharmony_ciclass MovingPhotoHandler implements photoAccessHelper.MediaAssetDataHandler<photoAccessHelper.MovingPhoto> { 4351e41f4b71Sopenharmony_ci onDataPrepared(data: photoAccessHelper.MovingPhoto, map: Map<string, string>) { 4352e41f4b71Sopenharmony_ci if (data === undefined) { 4353e41f4b71Sopenharmony_ci console.error('Error occurred when preparing data'); 4354e41f4b71Sopenharmony_ci return; 4355e41f4b71Sopenharmony_ci } 4356e41f4b71Sopenharmony_ci // 自定义对MovingPhoto的处理逻辑 4357e41f4b71Sopenharmony_ci console.info('on image data prepared, photo quality is ' + map['quality']); 4358e41f4b71Sopenharmony_ci } 4359e41f4b71Sopenharmony_ci} 4360e41f4b71Sopenharmony_ci``` 4361e41f4b71Sopenharmony_ci 4362e41f4b71Sopenharmony_ci## MovingPhoto<sup>12+</sup> 4363e41f4b71Sopenharmony_ci 4364e41f4b71Sopenharmony_ci动态照片对象。 4365e41f4b71Sopenharmony_ci 4366e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4367e41f4b71Sopenharmony_ci 4368e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4369e41f4b71Sopenharmony_ci 4370e41f4b71Sopenharmony_ci### getUri<sup>12+</sup> 4371e41f4b71Sopenharmony_ci 4372e41f4b71Sopenharmony_cigetUri(): string 4373e41f4b71Sopenharmony_ci 4374e41f4b71Sopenharmony_ci获取动态照片的uri。 4375e41f4b71Sopenharmony_ci 4376e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4377e41f4b71Sopenharmony_ci 4378e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4379e41f4b71Sopenharmony_ci 4380e41f4b71Sopenharmony_ci**返回值:** 4381e41f4b71Sopenharmony_ci 4382e41f4b71Sopenharmony_ci| 类型 | 说明 | 4383e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 4384e41f4b71Sopenharmony_ci| string | 动态照片的uri。 | 4385e41f4b71Sopenharmony_ci 4386e41f4b71Sopenharmony_ci**错误码:** 4387e41f4b71Sopenharmony_ci 4388e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4389e41f4b71Sopenharmony_ci 4390e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4391e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 4392e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 4393e41f4b71Sopenharmony_ci| 14000011 | System inner fail. | 4394e41f4b71Sopenharmony_ci 4395e41f4b71Sopenharmony_ci**示例:** 4396e41f4b71Sopenharmony_ci 4397e41f4b71Sopenharmony_ci```ts 4398e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 4399e41f4b71Sopenharmony_ci 4400e41f4b71Sopenharmony_ciclass MovingPhotoHandler implements photoAccessHelper.MediaAssetDataHandler<photoAccessHelper.MovingPhoto> { 4401e41f4b71Sopenharmony_ci async onDataPrepared(movingPhoto: photoAccessHelper.MovingPhoto) { 4402e41f4b71Sopenharmony_ci if (movingPhoto === undefined) { 4403e41f4b71Sopenharmony_ci console.error('Error occurred when preparing data'); 4404e41f4b71Sopenharmony_ci return; 4405e41f4b71Sopenharmony_ci } 4406e41f4b71Sopenharmony_ci console.info("moving photo acquired successfully, uri: " + movingPhoto.getUri()); 4407e41f4b71Sopenharmony_ci } 4408e41f4b71Sopenharmony_ci} 4409e41f4b71Sopenharmony_ci 4410e41f4b71Sopenharmony_ciasync function example() { 4411e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4412e41f4b71Sopenharmony_ci predicates.equalTo(photoAccessHelper.PhotoKeys.PHOTO_SUBTYPE, photoAccessHelper.PhotoSubtype.MOVING_PHOTO); 4413e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 4414e41f4b71Sopenharmony_ci fetchColumns: [], 4415e41f4b71Sopenharmony_ci predicates: predicates 4416e41f4b71Sopenharmony_ci }; 4417e41f4b71Sopenharmony_ci // 请确保图库内存在动态照片 4418e41f4b71Sopenharmony_ci let assetResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 4419e41f4b71Sopenharmony_ci let asset: photoAccessHelper.PhotoAsset = await assetResult.getFirstObject(); 4420e41f4b71Sopenharmony_ci let requestOptions: photoAccessHelper.RequestOptions = { 4421e41f4b71Sopenharmony_ci deliveryMode: photoAccessHelper.DeliveryMode.FAST_MODE, 4422e41f4b71Sopenharmony_ci } 4423e41f4b71Sopenharmony_ci const handler = new MovingPhotoHandler(); 4424e41f4b71Sopenharmony_ci try { 4425e41f4b71Sopenharmony_ci let requestId: string = await photoAccessHelper.MediaAssetManager.requestMovingPhoto(context, asset, requestOptions, handler); 4426e41f4b71Sopenharmony_ci console.info("moving photo requested successfully, requestId: " + requestId); 4427e41f4b71Sopenharmony_ci } catch (err) { 4428e41f4b71Sopenharmony_ci console.error(`failed to request moving photo, error code is ${err.code}, message is ${err.message}`); 4429e41f4b71Sopenharmony_ci } 4430e41f4b71Sopenharmony_ci} 4431e41f4b71Sopenharmony_ci``` 4432e41f4b71Sopenharmony_ci 4433e41f4b71Sopenharmony_ci### requestContent<sup>12+</sup> 4434e41f4b71Sopenharmony_ci 4435e41f4b71Sopenharmony_cirequestContent(imageFileUri: string, videoFileUri: string): Promise\<void> 4436e41f4b71Sopenharmony_ci 4437e41f4b71Sopenharmony_ci同时请求动态照片的图片内容和视频内容,并写入参数指定的对应的uri中。 4438e41f4b71Sopenharmony_ci 4439e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4440e41f4b71Sopenharmony_ci 4441e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4442e41f4b71Sopenharmony_ci 4443e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 4444e41f4b71Sopenharmony_ci 4445e41f4b71Sopenharmony_ci- 对于未申请'ohos.permission.READ_IMAGEVIDEO'权限的应用,可以通过picker的方式调用该接口来请求动态照片对象并读取内容,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-movingphoto.md)。 4446e41f4b71Sopenharmony_ci- 对于本应用保存到媒体库的动态照片资源,应用无需额外申请'ohos.permission.READ_IMAGEVIDEO'权限即可访问。 4447e41f4b71Sopenharmony_ci 4448e41f4b71Sopenharmony_ci**参数:** 4449e41f4b71Sopenharmony_ci 4450e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4451e41f4b71Sopenharmony_ci| -------- |----------------------------------------------------------------------| ---- | ------------------------- | 4452e41f4b71Sopenharmony_ci| imageFileUri | string | 是 | 待写入动态照片图片内容的uri。 | 4453e41f4b71Sopenharmony_ci| videoFileUri | string | 是 | 待写入动态照片视频内容的uri。 | 4454e41f4b71Sopenharmony_ci 4455e41f4b71Sopenharmony_ci**返回值:** 4456e41f4b71Sopenharmony_ci 4457e41f4b71Sopenharmony_ci| 类型 | 说明 | 4458e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 4459e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象,返回void。 | 4460e41f4b71Sopenharmony_ci 4461e41f4b71Sopenharmony_ci**错误码:** 4462e41f4b71Sopenharmony_ci 4463e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4464e41f4b71Sopenharmony_ci 4465e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4466e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 4467e41f4b71Sopenharmony_ci| 201 | Permission denied | 4468e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4469e41f4b71Sopenharmony_ci| 14000011 | System inner fail | 4470e41f4b71Sopenharmony_ci 4471e41f4b71Sopenharmony_ci**示例:** 4472e41f4b71Sopenharmony_ci 4473e41f4b71Sopenharmony_ci```ts 4474e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 4475e41f4b71Sopenharmony_ci 4476e41f4b71Sopenharmony_ciclass MovingPhotoHandler implements photoAccessHelper.MediaAssetDataHandler<photoAccessHelper.MovingPhoto> { 4477e41f4b71Sopenharmony_ci async onDataPrepared(movingPhoto: photoAccessHelper.MovingPhoto) { 4478e41f4b71Sopenharmony_ci if (movingPhoto === undefined) { 4479e41f4b71Sopenharmony_ci console.error('Error occurred when preparing data'); 4480e41f4b71Sopenharmony_ci return; 4481e41f4b71Sopenharmony_ci } 4482e41f4b71Sopenharmony_ci // 应用需要确保待写入的uri是有效的 4483e41f4b71Sopenharmony_ci let imageFileUri: string = "file://com.example.temptest/data/storage/el2/base/haps/ImageFile.jpg"; 4484e41f4b71Sopenharmony_ci let videoFileUri: string = "file://com.example.temptest/data/storage/el2/base/haps/VideoFile.mp4"; 4485e41f4b71Sopenharmony_ci try { 4486e41f4b71Sopenharmony_ci await movingPhoto.requestContent(imageFileUri, videoFileUri); 4487e41f4b71Sopenharmony_ci console.log("moving photo contents retrieved successfully"); 4488e41f4b71Sopenharmony_ci } catch (err) { 4489e41f4b71Sopenharmony_ci console.error(`failed to retrieve contents of moving photo, error code is ${err.code}, message is ${err.message}`); 4490e41f4b71Sopenharmony_ci } 4491e41f4b71Sopenharmony_ci } 4492e41f4b71Sopenharmony_ci} 4493e41f4b71Sopenharmony_ci 4494e41f4b71Sopenharmony_ciasync function example() { 4495e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4496e41f4b71Sopenharmony_ci predicates.equalTo(photoAccessHelper.PhotoKeys.PHOTO_SUBTYPE, photoAccessHelper.PhotoSubtype.MOVING_PHOTO); 4497e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 4498e41f4b71Sopenharmony_ci fetchColumns: [], 4499e41f4b71Sopenharmony_ci predicates: predicates 4500e41f4b71Sopenharmony_ci }; 4501e41f4b71Sopenharmony_ci // 请确保图库内存在动态照片 4502e41f4b71Sopenharmony_ci let assetResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 4503e41f4b71Sopenharmony_ci let asset: photoAccessHelper.PhotoAsset = await assetResult.getFirstObject(); 4504e41f4b71Sopenharmony_ci let requestOptions: photoAccessHelper.RequestOptions = { 4505e41f4b71Sopenharmony_ci deliveryMode: photoAccessHelper.DeliveryMode.FAST_MODE, 4506e41f4b71Sopenharmony_ci } 4507e41f4b71Sopenharmony_ci const handler = new MovingPhotoHandler(); 4508e41f4b71Sopenharmony_ci try { 4509e41f4b71Sopenharmony_ci let requestId: string = await photoAccessHelper.MediaAssetManager.requestMovingPhoto(context, asset, requestOptions, handler); 4510e41f4b71Sopenharmony_ci console.info("moving photo requested successfully, requestId: " + requestId); 4511e41f4b71Sopenharmony_ci } catch (err) { 4512e41f4b71Sopenharmony_ci console.error(`failed to request moving photo, error code is ${err.code}, message is ${err.message}`); 4513e41f4b71Sopenharmony_ci } 4514e41f4b71Sopenharmony_ci} 4515e41f4b71Sopenharmony_ci``` 4516e41f4b71Sopenharmony_ci 4517e41f4b71Sopenharmony_ci### requestContent<sup>12+</sup> 4518e41f4b71Sopenharmony_ci 4519e41f4b71Sopenharmony_cirequestContent(resourceType: ResourceType, fileUri: string): Promise\<void> 4520e41f4b71Sopenharmony_ci 4521e41f4b71Sopenharmony_ci请求指定资源类型的动态照片内容,并写入参数指定的uri中。 4522e41f4b71Sopenharmony_ci 4523e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4524e41f4b71Sopenharmony_ci 4525e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4526e41f4b71Sopenharmony_ci 4527e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 4528e41f4b71Sopenharmony_ci 4529e41f4b71Sopenharmony_ci- 对于未申请'ohos.permission.READ_IMAGEVIDEO'权限的应用,可以通过picker的方式调用该接口来请求动态照片对象并读取内容,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-movingphoto.md)。 4530e41f4b71Sopenharmony_ci- 对于本应用保存到媒体库的动态照片资源,应用无需额外申请'ohos.permission.READ_IMAGEVIDEO'权限即可访问。 4531e41f4b71Sopenharmony_ci 4532e41f4b71Sopenharmony_ci**参数:** 4533e41f4b71Sopenharmony_ci 4534e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4535e41f4b71Sopenharmony_ci| -------- |----------------------------------------------------------------------| ---- | ------------------------- | 4536e41f4b71Sopenharmony_ci| resourceType | [ResourceType](#resourcetype11) | 是 | 所请求动态照片内容的资源类型。 | 4537e41f4b71Sopenharmony_ci| fileUri | string | 是 |待写入动态照片内容的uri。 | 4538e41f4b71Sopenharmony_ci 4539e41f4b71Sopenharmony_ci**返回值:** 4540e41f4b71Sopenharmony_ci 4541e41f4b71Sopenharmony_ci| 类型 | 说明 | 4542e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 4543e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象,返回void。 | 4544e41f4b71Sopenharmony_ci 4545e41f4b71Sopenharmony_ci**错误码:** 4546e41f4b71Sopenharmony_ci 4547e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4548e41f4b71Sopenharmony_ci 4549e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4550e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 4551e41f4b71Sopenharmony_ci| 201 | Permission denied | 4552e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4553e41f4b71Sopenharmony_ci| 14000011 | System inner fail | 4554e41f4b71Sopenharmony_ci 4555e41f4b71Sopenharmony_ci**示例:** 4556e41f4b71Sopenharmony_ci 4557e41f4b71Sopenharmony_ci```ts 4558e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 4559e41f4b71Sopenharmony_ci 4560e41f4b71Sopenharmony_ciclass MovingPhotoHandler implements photoAccessHelper.MediaAssetDataHandler<photoAccessHelper.MovingPhoto> { 4561e41f4b71Sopenharmony_ci async onDataPrepared(movingPhoto: photoAccessHelper.MovingPhoto) { 4562e41f4b71Sopenharmony_ci if (movingPhoto === undefined) { 4563e41f4b71Sopenharmony_ci console.error('Error occurred when preparing data'); 4564e41f4b71Sopenharmony_ci return; 4565e41f4b71Sopenharmony_ci } 4566e41f4b71Sopenharmony_ci // 应用需要确保待写入的uri是有效的 4567e41f4b71Sopenharmony_ci let imageFileUri: string = "file://com.example.temptest/data/storage/el2/base/haps/ImageFile.jpg"; 4568e41f4b71Sopenharmony_ci try { 4569e41f4b71Sopenharmony_ci await movingPhoto.requestContent(photoAccessHelper.ResourceType.IMAGE_RESOURCE, imageFileUri); 4570e41f4b71Sopenharmony_ci console.log("moving photo image content retrieved successfully"); 4571e41f4b71Sopenharmony_ci } catch (err) { 4572e41f4b71Sopenharmony_ci console.error(`failed to retrieve image content of moving photo, error code is ${err.code}, message is ${err.message}`); 4573e41f4b71Sopenharmony_ci } 4574e41f4b71Sopenharmony_ci } 4575e41f4b71Sopenharmony_ci} 4576e41f4b71Sopenharmony_ci 4577e41f4b71Sopenharmony_ciasync function example() { 4578e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4579e41f4b71Sopenharmony_ci predicates.equalTo(photoAccessHelper.PhotoKeys.PHOTO_SUBTYPE, photoAccessHelper.PhotoSubtype.MOVING_PHOTO); 4580e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 4581e41f4b71Sopenharmony_ci fetchColumns: [], 4582e41f4b71Sopenharmony_ci predicates: predicates 4583e41f4b71Sopenharmony_ci }; 4584e41f4b71Sopenharmony_ci // 请确保图库内存在动态照片 4585e41f4b71Sopenharmony_ci let assetResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 4586e41f4b71Sopenharmony_ci let asset: photoAccessHelper.PhotoAsset = await assetResult.getFirstObject(); 4587e41f4b71Sopenharmony_ci let requestOptions: photoAccessHelper.RequestOptions = { 4588e41f4b71Sopenharmony_ci deliveryMode: photoAccessHelper.DeliveryMode.FAST_MODE, 4589e41f4b71Sopenharmony_ci } 4590e41f4b71Sopenharmony_ci const handler = new MovingPhotoHandler(); 4591e41f4b71Sopenharmony_ci try { 4592e41f4b71Sopenharmony_ci let requestId: string = await photoAccessHelper.MediaAssetManager.requestMovingPhoto(context, asset, requestOptions, handler); 4593e41f4b71Sopenharmony_ci console.info("moving photo requested successfully, requestId: " + requestId); 4594e41f4b71Sopenharmony_ci } catch (err) { 4595e41f4b71Sopenharmony_ci console.error(`failed to request moving photo, error code is ${err.code}, message is ${err.message}`); 4596e41f4b71Sopenharmony_ci } 4597e41f4b71Sopenharmony_ci} 4598e41f4b71Sopenharmony_ci``` 4599e41f4b71Sopenharmony_ci 4600e41f4b71Sopenharmony_ci### requestContent<sup>12+</sup> 4601e41f4b71Sopenharmony_ci 4602e41f4b71Sopenharmony_cirequestContent(resourceType: ResourceType): Promise\<ArrayBuffer> 4603e41f4b71Sopenharmony_ci 4604e41f4b71Sopenharmony_ci请求指定资源类型的动态照片内容,以ArrayBuffer的形式返回。 4605e41f4b71Sopenharmony_ci 4606e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4607e41f4b71Sopenharmony_ci 4608e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4609e41f4b71Sopenharmony_ci 4610e41f4b71Sopenharmony_ci**需要权限**:ohos.permission.READ_IMAGEVIDEO 4611e41f4b71Sopenharmony_ci 4612e41f4b71Sopenharmony_ci- 对于未申请'ohos.permission.READ_IMAGEVIDEO'权限的应用,可以通过picker的方式调用该接口来请求动态照片对象并读取内容,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-movingphoto.md)。 4613e41f4b71Sopenharmony_ci- 对于本应用保存到媒体库的动态照片资源,应用无需额外申请'ohos.permission.READ_IMAGEVIDEO'权限即可访问。 4614e41f4b71Sopenharmony_ci 4615e41f4b71Sopenharmony_ci**参数:** 4616e41f4b71Sopenharmony_ci 4617e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4618e41f4b71Sopenharmony_ci| -------- |----------------------------------------------------------------------| ---- | ------------------------- | 4619e41f4b71Sopenharmony_ci| resourceType | [ResourceType](#resourcetype11) | 是 | 所请求动态照片内容的资源类型。 | 4620e41f4b71Sopenharmony_ci 4621e41f4b71Sopenharmony_ci**返回值:** 4622e41f4b71Sopenharmony_ci 4623e41f4b71Sopenharmony_ci| 类型 | 说明 | 4624e41f4b71Sopenharmony_ci| --------------------------------------- | ----------------- | 4625e41f4b71Sopenharmony_ci| Promise\<ArrayBuffer> | Promise对象,返回包含所请求文件内容的ArrayBuffer。 | 4626e41f4b71Sopenharmony_ci 4627e41f4b71Sopenharmony_ci**错误码:** 4628e41f4b71Sopenharmony_ci 4629e41f4b71Sopenharmony_ci接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4630e41f4b71Sopenharmony_ci 4631e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4632e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | 4633e41f4b71Sopenharmony_ci| 201 | Permission denied | 4634e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4635e41f4b71Sopenharmony_ci| 14000011 | System inner fail | 4636e41f4b71Sopenharmony_ci 4637e41f4b71Sopenharmony_ci**示例:** 4638e41f4b71Sopenharmony_ci 4639e41f4b71Sopenharmony_ci```ts 4640e41f4b71Sopenharmony_ciimport { dataSharePredicates } from '@kit.ArkData'; 4641e41f4b71Sopenharmony_ci 4642e41f4b71Sopenharmony_ciclass MovingPhotoHandler implements photoAccessHelper.MediaAssetDataHandler<photoAccessHelper.MovingPhoto> { 4643e41f4b71Sopenharmony_ci async onDataPrepared(movingPhoto: photoAccessHelper.MovingPhoto) { 4644e41f4b71Sopenharmony_ci if (movingPhoto === undefined) { 4645e41f4b71Sopenharmony_ci console.error('Error occurred when preparing data'); 4646e41f4b71Sopenharmony_ci return; 4647e41f4b71Sopenharmony_ci } 4648e41f4b71Sopenharmony_ci try { 4649e41f4b71Sopenharmony_ci let buffer: ArrayBuffer = await movingPhoto.requestContent(photoAccessHelper.ResourceType.IMAGE_RESOURCE); 4650e41f4b71Sopenharmony_ci console.log("moving photo image content retrieved successfully, buffer length: " + buffer.byteLength); 4651e41f4b71Sopenharmony_ci } catch (err) { 4652e41f4b71Sopenharmony_ci console.error(`failed to retrieve image content of moving photo, error code is ${err.code}, message is ${err.message}`); 4653e41f4b71Sopenharmony_ci } 4654e41f4b71Sopenharmony_ci } 4655e41f4b71Sopenharmony_ci} 4656e41f4b71Sopenharmony_ci 4657e41f4b71Sopenharmony_ciasync function example() { 4658e41f4b71Sopenharmony_ci let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4659e41f4b71Sopenharmony_ci predicates.equalTo(photoAccessHelper.PhotoKeys.PHOTO_SUBTYPE, photoAccessHelper.PhotoSubtype.MOVING_PHOTO); 4660e41f4b71Sopenharmony_ci let fetchOptions: photoAccessHelper.FetchOptions = { 4661e41f4b71Sopenharmony_ci fetchColumns: [], 4662e41f4b71Sopenharmony_ci predicates: predicates 4663e41f4b71Sopenharmony_ci }; 4664e41f4b71Sopenharmony_ci // 请确保图库内存在动态照片 4665e41f4b71Sopenharmony_ci let assetResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 4666e41f4b71Sopenharmony_ci let asset: photoAccessHelper.PhotoAsset = await assetResult.getFirstObject(); 4667e41f4b71Sopenharmony_ci let requestOptions: photoAccessHelper.RequestOptions = { 4668e41f4b71Sopenharmony_ci deliveryMode: photoAccessHelper.DeliveryMode.FAST_MODE, 4669e41f4b71Sopenharmony_ci } 4670e41f4b71Sopenharmony_ci const handler = new MovingPhotoHandler(); 4671e41f4b71Sopenharmony_ci try { 4672e41f4b71Sopenharmony_ci let requestId: string = await photoAccessHelper.MediaAssetManager.requestMovingPhoto(context, asset, requestOptions, handler); 4673e41f4b71Sopenharmony_ci console.info("moving photo requested successfully, requestId: " + requestId); 4674e41f4b71Sopenharmony_ci } catch (err) { 4675e41f4b71Sopenharmony_ci console.error(`failed to request moving photo, error code is ${err.code}, message is ${err.message}`); 4676e41f4b71Sopenharmony_ci } 4677e41f4b71Sopenharmony_ci} 4678e41f4b71Sopenharmony_ci``` 4679e41f4b71Sopenharmony_ci 4680e41f4b71Sopenharmony_ci## MemberType 4681e41f4b71Sopenharmony_ci 4682e41f4b71Sopenharmony_citype MemberType = number | string | boolean 4683e41f4b71Sopenharmony_ci 4684e41f4b71Sopenharmony_ciPhotoAsset的成员类型。 4685e41f4b71Sopenharmony_ci 4686e41f4b71Sopenharmony_ci成员类型为下表类型中的并集。 4687e41f4b71Sopenharmony_ci 4688e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4689e41f4b71Sopenharmony_ci 4690e41f4b71Sopenharmony_ci| 类型 | 说明 | 4691e41f4b71Sopenharmony_ci| ---- | ---- | 4692e41f4b71Sopenharmony_ci| number | 表示值类型为数字,可取任意值。 | 4693e41f4b71Sopenharmony_ci| string | 表示值类型为字符,可取任意值。| 4694e41f4b71Sopenharmony_ci| boolean | 表示值类型为布尔类型。 | 4695e41f4b71Sopenharmony_ci 4696e41f4b71Sopenharmony_ci## PhotoType 4697e41f4b71Sopenharmony_ci 4698e41f4b71Sopenharmony_ci枚举,媒体文件类型。 4699e41f4b71Sopenharmony_ci 4700e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4701e41f4b71Sopenharmony_ci 4702e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4703e41f4b71Sopenharmony_ci 4704e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4705e41f4b71Sopenharmony_ci| ----- | ---- | ---- | 4706e41f4b71Sopenharmony_ci| IMAGE | 1 | 图片。 | 4707e41f4b71Sopenharmony_ci| VIDEO | 2 | 视频。 | 4708e41f4b71Sopenharmony_ci 4709e41f4b71Sopenharmony_ci## PhotoSubtype<sup>12+</sup> 4710e41f4b71Sopenharmony_ci 4711e41f4b71Sopenharmony_ci枚举,不同[PhotoAsset](#photoasset)的类型。 4712e41f4b71Sopenharmony_ci 4713e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4714e41f4b71Sopenharmony_ci 4715e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4716e41f4b71Sopenharmony_ci 4717e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4718e41f4b71Sopenharmony_ci| ----- | ---- | ---- | 4719e41f4b71Sopenharmony_ci| DEFAULT | 0 | 默认照片类型。 | 4720e41f4b71Sopenharmony_ci| MOVING_PHOTO | 3 | 动态照片文件类型。 | 4721e41f4b71Sopenharmony_ci| BURST | 4 | 连拍照片文件类型。 | 4722e41f4b71Sopenharmony_ci 4723e41f4b71Sopenharmony_ci## DynamicRangeType<sup>12+</sup> 4724e41f4b71Sopenharmony_ci 4725e41f4b71Sopenharmony_ci枚举,媒体文件的动态范围类型。 4726e41f4b71Sopenharmony_ci 4727e41f4b71Sopenharmony_ci**系统能力**: SystemCapability.FileManagement.PhotoAccessHelper.Core 4728e41f4b71Sopenharmony_ci 4729e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4730e41f4b71Sopenharmony_ci| ----- | ---- | ---- | 4731e41f4b71Sopenharmony_ci| SDR | 0 | 标准动态范围类型。| 4732e41f4b71Sopenharmony_ci| HDR | 1 | 高动态范围类型。 | 4733e41f4b71Sopenharmony_ci 4734e41f4b71Sopenharmony_ci## AlbumType 4735e41f4b71Sopenharmony_ci 4736e41f4b71Sopenharmony_ci枚举,相册类型,表示是用户相册还是系统预置相册。 4737e41f4b71Sopenharmony_ci 4738e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4739e41f4b71Sopenharmony_ci 4740e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4741e41f4b71Sopenharmony_ci| ------------------- | ---- | ------------------------- | 4742e41f4b71Sopenharmony_ci| USER | 0 | 用户相册。 | 4743e41f4b71Sopenharmony_ci| SYSTEM | 1024 | 系统预置相册。 | 4744e41f4b71Sopenharmony_ci 4745e41f4b71Sopenharmony_ci## AlbumSubtype 4746e41f4b71Sopenharmony_ci 4747e41f4b71Sopenharmony_ci枚举,相册子类型,表示具体的相册类型。 4748e41f4b71Sopenharmony_ci 4749e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4750e41f4b71Sopenharmony_ci 4751e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4752e41f4b71Sopenharmony_ci| --------------------------------- | ---------- | ------------------------------- | 4753e41f4b71Sopenharmony_ci| USER\_GENERIC | 1 | 用户相册。 | 4754e41f4b71Sopenharmony_ci| FAVORITE | 1025 | 收藏夹。 | 4755e41f4b71Sopenharmony_ci| VIDEO | 1026 | 视频相册。 | 4756e41f4b71Sopenharmony_ci| IMAGE<sup>12+</sup> | 1031 | 图片相册。 | 4757e41f4b71Sopenharmony_ci| ANY | 2147483647 | 任意相册。 | 4758e41f4b71Sopenharmony_ci 4759e41f4b71Sopenharmony_ci## PhotoKeys 4760e41f4b71Sopenharmony_ci 4761e41f4b71Sopenharmony_ci枚举,图片和视频文件关键信息。 4762e41f4b71Sopenharmony_ci 4763e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4764e41f4b71Sopenharmony_ci 4765e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4766e41f4b71Sopenharmony_ci| ------------- | ------------------- | ---------------------------------------------------------- | 4767e41f4b71Sopenharmony_ci| URI | 'uri' | 文件uri。<br>注意:查询照片时,该字段仅支持使用[DataSharePredicates.equalTo](../apis-arkdata/js-apis-data-dataSharePredicates.md#equalto10)谓词。 | 4768e41f4b71Sopenharmony_ci| PHOTO_TYPE | 'media_type' | 媒体文件类型。 | 4769e41f4b71Sopenharmony_ci| DISPLAY_NAME | 'display_name' | 显示名字。 | 4770e41f4b71Sopenharmony_ci| SIZE | 'size' | 文件大小(单位:字节)。 | 4771e41f4b71Sopenharmony_ci| DATE_ADDED | 'date_added' | 添加日期(添加文件时间距1970年1月1日的秒数值)。 | 4772e41f4b71Sopenharmony_ci| DATE_MODIFIED | 'date_modified' | 修改日期(修改文件时间距1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新)。 | 4773e41f4b71Sopenharmony_ci| DURATION | 'duration' | 持续时间(单位:毫秒)。 | 4774e41f4b71Sopenharmony_ci| WIDTH | 'width' | 图片宽度(单位:像素)。 | 4775e41f4b71Sopenharmony_ci| HEIGHT | 'height' | 图片高度(单位:像素)。 | 4776e41f4b71Sopenharmony_ci| DATE_TAKEN | 'date_taken' | 拍摄日期(文件拍照时间距1970年1月1日的秒数值)。 | 4777e41f4b71Sopenharmony_ci| ORIENTATION | 'orientation' | 文件的旋转角度,单位为度。 | 4778e41f4b71Sopenharmony_ci| FAVORITE | 'is_favorite' | 收藏。 | 4779e41f4b71Sopenharmony_ci| TITLE | 'title' | 文件标题。 | 4780e41f4b71Sopenharmony_ci| DATE_ADDED_MS<sup>12+</sup> | 'date_added_ms' | 添加日期(添加文件时间距1970年1月1日的毫秒数值)。<br>注意:查询照片时,不支持基于该字段排序。 | 4781e41f4b71Sopenharmony_ci| DATE_MODIFIED_MS<sup>12+</sup> | 'date_modified_ms' | 修改日期(修改文件时间距1970年1月1日的毫秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新)。<br>注意:查询照片时,不支持基于该字段排序。 | 4782e41f4b71Sopenharmony_ci| PHOTO_SUBTYPE<sup>12+</sup> | 'subtype' | 媒体文件的子类型。 | 4783e41f4b71Sopenharmony_ci| DYNAMIC_RANGE_TYPE<sup>12+</sup> | 'dynamic_range_type' | 媒体文件的动态范围类型。 | 4784e41f4b71Sopenharmony_ci| COVER_POSITION<sup>12+</sup> | 'cover_position' | 动态照片的封面位置,具体表示封面帧所对应的视频时间戳(单位:微秒)。 | 4785e41f4b71Sopenharmony_ci| BURST_KEY<sup>12+</sup> | 'burst_key' | 一组连拍照片的唯一标识:uuid。 | 4786e41f4b71Sopenharmony_ci| LCD_SIZE<sup>12+</sup> | 'lcd_size' | LCD图片的宽高,值为width:height拼接而成的字符串。| 4787e41f4b71Sopenharmony_ci| THM_SIZE<sup>12+</sup> | 'thm_size' | THUMB图片的宽高,值为width:height拼接而成的字符串。| 4788e41f4b71Sopenharmony_ci 4789e41f4b71Sopenharmony_ci## AlbumKeys 4790e41f4b71Sopenharmony_ci 4791e41f4b71Sopenharmony_ci枚举,相册关键信息。 4792e41f4b71Sopenharmony_ci 4793e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4794e41f4b71Sopenharmony_ci 4795e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4796e41f4b71Sopenharmony_ci| ------------- | ------------------- | ---------------------------------------------------------- | 4797e41f4b71Sopenharmony_ci| URI | 'uri' | 相册uri。 | 4798e41f4b71Sopenharmony_ci| ALBUM_NAME | 'album_name' | 相册名字。 | 4799e41f4b71Sopenharmony_ci 4800e41f4b71Sopenharmony_ci## CreateOptions 4801e41f4b71Sopenharmony_ci 4802e41f4b71Sopenharmony_ci图片或视频的创建选项。 4803e41f4b71Sopenharmony_ci 4804e41f4b71Sopenharmony_cititle参数规格为: 4805e41f4b71Sopenharmony_ci- 不应包含扩展名。 4806e41f4b71Sopenharmony_ci- 文件名字符串长度为1~255。 4807e41f4b71Sopenharmony_ci- 文件名中不允许出现的非法英文字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ] 4808e41f4b71Sopenharmony_ci 4809e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4810e41f4b71Sopenharmony_ci 4811e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4812e41f4b71Sopenharmony_ci 4813e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 4814e41f4b71Sopenharmony_ci| ---------------------- | ------------------- | ---- | ------------------------------------------------ | 4815e41f4b71Sopenharmony_ci| title | string | 否 | 图片或者视频的标题。 | 4816e41f4b71Sopenharmony_ci| subtype<sup>12+</sup> | [PhotoSubtype](#photosubtype12) | 否 | 图片或者视频的文件子类型。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 4817e41f4b71Sopenharmony_ci 4818e41f4b71Sopenharmony_ci 4819e41f4b71Sopenharmony_ci## FetchOptions 4820e41f4b71Sopenharmony_ci 4821e41f4b71Sopenharmony_ci检索条件。 4822e41f4b71Sopenharmony_ci 4823e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4824e41f4b71Sopenharmony_ci 4825e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 4826e41f4b71Sopenharmony_ci| ---------------------- | ------------------- | ---- |---- | ------------------------------------------------ | 4827e41f4b71Sopenharmony_ci| fetchColumns | Array<string> | 是 | 是 | 检索条件,指定列名查询。<br>对于照片,如果该参数为空,默认查询'uri'、'media_type'、'subtype'和'display_name',使用[get](#get)接口获取当前对象的其他属性时将会报错。示例:fetchColumns: ['uri', 'title']。<br>对于相册,如果该参数为空,默认查询'uri'和'album_name'。 | 4828e41f4b71Sopenharmony_ci| predicates | [dataSharePredicates.DataSharePredicates](../apis-arkdata/js-apis-data-dataSharePredicates.md#datasharepredicates) | 是 | 是 | 谓词查询,显示过滤条件。 | 4829e41f4b71Sopenharmony_ci 4830e41f4b71Sopenharmony_ci## RequestOptions<sup>11+</sup> 4831e41f4b71Sopenharmony_ci 4832e41f4b71Sopenharmony_ci请求策略。 4833e41f4b71Sopenharmony_ci 4834e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4835e41f4b71Sopenharmony_ci 4836e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 4837e41f4b71Sopenharmony_ci| ---------------------- |---------------------------------| ---- |---- | ------------------------------------------------ | 4838e41f4b71Sopenharmony_ci| deliveryMode | [DeliveryMode](#deliverymode11) | 是 | 是 | 请求资源分发模式,可以指定对于该资源的请求策略,可被配置为快速模式,高质量模式,均衡模式三种策略。 | 4839e41f4b71Sopenharmony_ci| compatibleMode<sup>13+</sup> | [CompatibleMode](#compatiblemode13) | 是 | 是 | 配置HDR视频转码模式,可指定配置为转码和不转码两种策略。 | 4840e41f4b71Sopenharmony_ci| rediaAssetProgressHandler<sup>13+</sup> | [MediaAssetProgressHandler](#mediaassetprogresshandler13) | 是 | 是 | 配置HDR视频转码为SDR视频时的进度级回调。 | 4841e41f4b71Sopenharmony_ci 4842e41f4b71Sopenharmony_ci## MediaChangeRequest<sup>11+</sup> 4843e41f4b71Sopenharmony_ci 4844e41f4b71Sopenharmony_ci媒体变更请求,资产变更请求和相册变更请求的父类型。 4845e41f4b71Sopenharmony_ci 4846e41f4b71Sopenharmony_ci**注意**:媒体变更请求需要在调用[applyChanges](#applychanges11)后才会提交生效。 4847e41f4b71Sopenharmony_ci 4848e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4849e41f4b71Sopenharmony_ci 4850e41f4b71Sopenharmony_ci## ResourceType<sup>11+</sup> 4851e41f4b71Sopenharmony_ci 4852e41f4b71Sopenharmony_ci枚举,写入资源的类型。 4853e41f4b71Sopenharmony_ci 4854e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4855e41f4b71Sopenharmony_ci 4856e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4857e41f4b71Sopenharmony_ci 4858e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4859e41f4b71Sopenharmony_ci| ----- | ---- | ---- | 4860e41f4b71Sopenharmony_ci| IMAGE_RESOURCE | 1 | 表示图片资源。 | 4861e41f4b71Sopenharmony_ci| VIDEO_RESOURCE | 2 | 表示视频资源。 | 4862e41f4b71Sopenharmony_ci 4863e41f4b71Sopenharmony_ci## ChangeData 4864e41f4b71Sopenharmony_ci 4865e41f4b71Sopenharmony_ci监听器回调函数的值。 4866e41f4b71Sopenharmony_ci 4867e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4868e41f4b71Sopenharmony_ci 4869e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 4870e41f4b71Sopenharmony_ci| ------- | --------------------------- | ---- | ---- | ------------------------------------------------------------ | 4871e41f4b71Sopenharmony_ci| type | [NotifyType](#notifytype) | 是 | 否 | ChangeData的通知类型。 | 4872e41f4b71Sopenharmony_ci| uris | Array<string> | 是 | 否 | 相同[NotifyType](#notifytype)的所有uri,可以是PhotoAsset或Album。 | 4873e41f4b71Sopenharmony_ci| extraUris | Array<string> | 是 | 否 | 相册中变动文件的uri数组。 | 4874e41f4b71Sopenharmony_ci 4875e41f4b71Sopenharmony_ci## NotifyType 4876e41f4b71Sopenharmony_ci 4877e41f4b71Sopenharmony_ci枚举,通知事件的类型。 4878e41f4b71Sopenharmony_ci 4879e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4880e41f4b71Sopenharmony_ci 4881e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4882e41f4b71Sopenharmony_ci| ------------------------- | ---- | -------------------------------- | 4883e41f4b71Sopenharmony_ci| NOTIFY_ADD | 0 | 添加文件集或相册通知的类型。 | 4884e41f4b71Sopenharmony_ci| NOTIFY_UPDATE | 1 | 文件集或相册的更新通知类型。 | 4885e41f4b71Sopenharmony_ci| NOTIFY_REMOVE | 2 | 删除文件集或相册的通知类型。 | 4886e41f4b71Sopenharmony_ci| NOTIFY_ALBUM_ADD_ASSET | 3 | 在相册中添加的文件集的通知类型。 | 4887e41f4b71Sopenharmony_ci| NOTIFY_ALBUM_REMOVE_ASSET | 4 | 在相册中删除的文件集的通知类型。 | 4888e41f4b71Sopenharmony_ci 4889e41f4b71Sopenharmony_ci## DefaultChangeUri 4890e41f4b71Sopenharmony_ci 4891e41f4b71Sopenharmony_ci枚举,DefaultChangeUri子类型。 4892e41f4b71Sopenharmony_ci 4893e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4894e41f4b71Sopenharmony_ci 4895e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4896e41f4b71Sopenharmony_ci| ----------------- | ----------------------- | ------------------------------------------------------------ | 4897e41f4b71Sopenharmony_ci| DEFAULT_PHOTO_URI | 'file://media/Photo' | 默认PhotoAsset的Uri,与forSubUri{true}一起使用,将接收所有PhotoAsset的更改通知。 | 4898e41f4b71Sopenharmony_ci| DEFAULT_ALBUM_URI | 'file://media/PhotoAlbum' | 默认相册的Uri,与forSubUri{true}一起使用,将接收所有相册的更改通知。 | 4899e41f4b71Sopenharmony_ci 4900e41f4b71Sopenharmony_ci## PhotoViewMIMETypes 4901e41f4b71Sopenharmony_ci 4902e41f4b71Sopenharmony_ci枚举,可选择的媒体文件类型。 4903e41f4b71Sopenharmony_ci 4904e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4905e41f4b71Sopenharmony_ci 4906e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.FileManagement.PhotoAccessHelper.Core 4907e41f4b71Sopenharmony_ci 4908e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4909e41f4b71Sopenharmony_ci|---------------------------------------| ---- |----------| 4910e41f4b71Sopenharmony_ci| IMAGE_TYPE | 'image/*' | 图片类型。 | 4911e41f4b71Sopenharmony_ci| VIDEO_TYPE | 'video/*' | 视频类型。 | 4912e41f4b71Sopenharmony_ci| IMAGE_VIDEO_TYPE | '\*/*' | 图片和视频类型。 | 4913e41f4b71Sopenharmony_ci| MOVING_PHOTO_IMAGE_TYPE<sup>12+</sup> | 'image/movingPhoto' | 动态照片类型。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 4914e41f4b71Sopenharmony_ci 4915e41f4b71Sopenharmony_ci## RecommendationType<sup>11+</sup> 4916e41f4b71Sopenharmony_ci 4917e41f4b71Sopenharmony_ci枚举,推荐的图片类型。 4918e41f4b71Sopenharmony_ci 4919e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 4920e41f4b71Sopenharmony_ci 4921e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.FileManagement.PhotoAccessHelper.Core 4922e41f4b71Sopenharmony_ci 4923e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4924e41f4b71Sopenharmony_ci| ----- | ---- | ---- | 4925e41f4b71Sopenharmony_ci| QR_OR_BAR_CODE | 1 | 二维码或条码。 | 4926e41f4b71Sopenharmony_ci| QR_CODE | 2 | 二维码。 | 4927e41f4b71Sopenharmony_ci| BAR_CODE | 3 | 条码。 | 4928e41f4b71Sopenharmony_ci| ID_CARD | 4 | 身份证。 | 4929e41f4b71Sopenharmony_ci| PROFILE_PICTURE | 5 | 头像。 | 4930e41f4b71Sopenharmony_ci| PASSPORT<sup>12+</sup> | 6 | 护照。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 4931e41f4b71Sopenharmony_ci| BANK_CARD<sup>12+</sup> | 7 | 银行卡。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 4932e41f4b71Sopenharmony_ci| DRIVER_LICENSE<sup>12+</sup> | 8 | 驾驶证。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 4933e41f4b71Sopenharmony_ci| DRIVING_LICENSE<sup>12+</sup> | 9 | 行驶证。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 4934e41f4b71Sopenharmony_ci| FEATURED_SINGLE_PORTRAIT<sup>12+</sup> | 10 | 精选单人像。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 4935e41f4b71Sopenharmony_ci 4936e41f4b71Sopenharmony_ci**示例:** 4937e41f4b71Sopenharmony_ci 4938e41f4b71Sopenharmony_ci```ts 4939e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4940e41f4b71Sopenharmony_ciasync function example() { 4941e41f4b71Sopenharmony_ci try { 4942e41f4b71Sopenharmony_ci let recommendOptions: photoAccessHelper.RecommendationOptions = { 4943e41f4b71Sopenharmony_ci recommendationType: photoAccessHelper.RecommendationType.ID_CARD 4944e41f4b71Sopenharmony_ci } 4945e41f4b71Sopenharmony_ci let options: photoAccessHelper.PhotoSelectOptions = { 4946e41f4b71Sopenharmony_ci MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE, 4947e41f4b71Sopenharmony_ci maxSelectNumber: 1, 4948e41f4b71Sopenharmony_ci recommendationOptions: recommendOptions 4949e41f4b71Sopenharmony_ci } 4950e41f4b71Sopenharmony_ci let photoPicker = new photoAccessHelper.PhotoViewPicker(); 4951e41f4b71Sopenharmony_ci photoPicker.select(options).then((PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => { 4952e41f4b71Sopenharmony_ci console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult)); 4953e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4954e41f4b71Sopenharmony_ci console.error(`PhotoViewPicker.select failed with err: ${err.code}, ${err.message}`); 4955e41f4b71Sopenharmony_ci }); 4956e41f4b71Sopenharmony_ci } catch (error) { 4957e41f4b71Sopenharmony_ci let err: BusinessError = error as BusinessError; 4958e41f4b71Sopenharmony_ci console.error(`PhotoViewPicker failed with err: ${err.code}, ${err.message}`); 4959e41f4b71Sopenharmony_ci } 4960e41f4b71Sopenharmony_ci} 4961e41f4b71Sopenharmony_ci``` 4962e41f4b71Sopenharmony_ci 4963e41f4b71Sopenharmony_ci## TextContextInfo<sup>12+</sup> 4964e41f4b71Sopenharmony_ci 4965e41f4b71Sopenharmony_ci文本信息,用于推荐图片的文本信息。 4966e41f4b71Sopenharmony_ci 4967e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 4968e41f4b71Sopenharmony_ci 4969e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4970e41f4b71Sopenharmony_ci 4971e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 4972e41f4b71Sopenharmony_ci| ----------------------- | ------------------- | ---- | -------------------------------- | 4973e41f4b71Sopenharmony_ci| text | string | 否 | 如果需要根据文本(支持250字以内的简体中文)推荐相应的图片,则配置此参数。 | 4974e41f4b71Sopenharmony_ci 4975e41f4b71Sopenharmony_ci**示例:** 4976e41f4b71Sopenharmony_ci 4977e41f4b71Sopenharmony_ci```ts 4978e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4979e41f4b71Sopenharmony_ciasync function example() { 4980e41f4b71Sopenharmony_ci try { 4981e41f4b71Sopenharmony_ci let textInfo: photoAccessHelper.TextContextInfo = { 4982e41f4b71Sopenharmony_ci text: '上海野生动物园的大熊猫' 4983e41f4b71Sopenharmony_ci } 4984e41f4b71Sopenharmony_ci let recommendOptions: photoAccessHelper.RecommendationOptions = { 4985e41f4b71Sopenharmony_ci textContextInfo: textInfo 4986e41f4b71Sopenharmony_ci } 4987e41f4b71Sopenharmony_ci let options: photoAccessHelper.PhotoSelectOptions = { 4988e41f4b71Sopenharmony_ci MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE, 4989e41f4b71Sopenharmony_ci maxSelectNumber: 1, 4990e41f4b71Sopenharmony_ci recommendationOptions: recommendOptions 4991e41f4b71Sopenharmony_ci } 4992e41f4b71Sopenharmony_ci let photoPicker = new photoAccessHelper.PhotoViewPicker(); 4993e41f4b71Sopenharmony_ci photoPicker.select(options).then((PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => { 4994e41f4b71Sopenharmony_ci console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult)); 4995e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4996e41f4b71Sopenharmony_ci console.error(`PhotoViewPicker.select failed with err: ${err.code}, ${err.message}`); 4997e41f4b71Sopenharmony_ci }); 4998e41f4b71Sopenharmony_ci } catch (error) { 4999e41f4b71Sopenharmony_ci let err: BusinessError = error as BusinessError; 5000e41f4b71Sopenharmony_ci console.error(`PhotoViewPicker failed with err: ${err.code}, ${err.message}`); 5001e41f4b71Sopenharmony_ci } 5002e41f4b71Sopenharmony_ci} 5003e41f4b71Sopenharmony_ci``` 5004e41f4b71Sopenharmony_ci 5005e41f4b71Sopenharmony_ci## RecommendationOptions<sup>11+</sup> 5006e41f4b71Sopenharmony_ci 5007e41f4b71Sopenharmony_ci图片推荐选项(基于图片数据分析结果,依赖设备适配)。 5008e41f4b71Sopenharmony_ci 5009e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5010e41f4b71Sopenharmony_ci 5011e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5012e41f4b71Sopenharmony_ci 5013e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 5014e41f4b71Sopenharmony_ci| ----------------------- | ------------------- | ---- | -------------------------------- | 5015e41f4b71Sopenharmony_ci| recommendationType | [RecommendationType](#recommendationtype11) | 否 | 如果需要根据枚举值推荐相应的图片,则配置此参数。 | 5016e41f4b71Sopenharmony_ci| textContextInfo<sup>12+</sup> | [TextContextInfo](#textcontextinfo12) | 否 | 如果需要根据文本信息推荐相应的图片,则配置此参数(如果同时配置了recommendationType,则仅textContextInfo生效)。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5017e41f4b71Sopenharmony_ci 5018e41f4b71Sopenharmony_ci## BaseSelectOptions<sup>12+</sup> 5019e41f4b71Sopenharmony_ci 5020e41f4b71Sopenharmony_ci图库选择选项基类。 5021e41f4b71Sopenharmony_ci 5022e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5023e41f4b71Sopenharmony_ci 5024e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 5025e41f4b71Sopenharmony_ci| ----------------------- | ------------------- | ---- | -------------------------------- | 5026e41f4b71Sopenharmony_ci| MIMEType<sup>10+</sup> | [PhotoViewMIMETypes](#photoviewmimetypes) | 否 | 可选择的媒体文件类型,若无此参数,则默认为图片和视频类型。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 5027e41f4b71Sopenharmony_ci| maxSelectNumber<sup>10+</sup> | number | 否 | 选择媒体文件数量的最大值(最大可设置的值为500,若不设置则默认为50)。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 5028e41f4b71Sopenharmony_ci| isPhotoTakingSupported<sup>11+</sup> | boolean | 否 | 是否支持拍照,true表示支持,false表示不支持,默认为true。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 5029e41f4b71Sopenharmony_ci| isSearchSupported<sup>11+</sup> | boolean | 否 | 是否支持搜索,true表示支持,false表示不支持,默认为true。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 5030e41f4b71Sopenharmony_ci| recommendationOptions<sup>11+</sup> | [RecommendationOptions](#recommendationoptions11) | 否 | 图片推荐相关配置参数。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 5031e41f4b71Sopenharmony_ci| preselectedUris<sup>11+</sup> | Array<string> | 否 | 预选择图片的uri数据。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 | 5032e41f4b71Sopenharmony_ci| isPreviewForSingleSelectionSupported<sup>12+</sup> | boolean | 否 | 单选模式下是否需要进大图预览,true表示需要,false表示不需要,默认为true。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5033e41f4b71Sopenharmony_ci 5034e41f4b71Sopenharmony_ci## PhotoSelectOptions 5035e41f4b71Sopenharmony_ci 5036e41f4b71Sopenharmony_ci图库选择选项子类,继承于BaseSelectOptions。 5037e41f4b71Sopenharmony_ci 5038e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5039e41f4b71Sopenharmony_ci 5040e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5041e41f4b71Sopenharmony_ci 5042e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 5043e41f4b71Sopenharmony_ci| ----------------------- | ------------------- | ---- | -------------------------------- | 5044e41f4b71Sopenharmony_ci| isEditSupported<sup>11+</sup> | boolean | 否 | 是否支持编辑照片,true表示支持,false表示不支持,默认为true。 | 5045e41f4b71Sopenharmony_ci| isOriginalSupported<sup>12+</sup> | boolean | 否 | 是否显示选择原图按钮,true表示显示,false表示不显示,默认为true。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5046e41f4b71Sopenharmony_ci| subWindowName<sup>12+</sup> | string | 否 | 子窗窗口名称。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 5047e41f4b71Sopenharmony_ci 5048e41f4b71Sopenharmony_ci## PhotoSelectResult 5049e41f4b71Sopenharmony_ci 5050e41f4b71Sopenharmony_ci返回图库选择后的结果集。 5051e41f4b71Sopenharmony_ci 5052e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 5053e41f4b71Sopenharmony_ci 5054e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5055e41f4b71Sopenharmony_ci 5056e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 5057e41f4b71Sopenharmony_ci| ----------------------- | ------------------- | ---- | ---- | ------------------------------ | 5058e41f4b71Sopenharmony_ci| photoUris | Array<string> | 是 | 是 | 返回图库选择后的媒体文件的uri数组,此uri数组只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。 | 5059e41f4b71Sopenharmony_ci| isOriginalPhoto | boolean | 是 | 是 | 返回图库选择后的媒体文件是否为原图。 | 5060e41f4b71Sopenharmony_ci 5061e41f4b71Sopenharmony_ci 5062e41f4b71Sopenharmony_ci## DeliveryMode<sup>11+</sup> 5063e41f4b71Sopenharmony_ci 5064e41f4b71Sopenharmony_ci枚举,资源分发模式。 5065e41f4b71Sopenharmony_ci 5066e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5067e41f4b71Sopenharmony_ci 5068e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 5069e41f4b71Sopenharmony_ci| ----- | ---- | ---- | 5070e41f4b71Sopenharmony_ci| FAST_MODE | 0 | 快速模式。 | 5071e41f4b71Sopenharmony_ci| HIGH_QUALITY_MODE | 1 | 高质量模式。 | 5072e41f4b71Sopenharmony_ci| BALANCE_MODE | 2 | 均衡模式。 | 5073e41f4b71Sopenharmony_ci 5074e41f4b71Sopenharmony_ci## PhotoCreationConfig<sup>12+</sup> 5075e41f4b71Sopenharmony_ci 5076e41f4b71Sopenharmony_ci保存图片/视频到媒体库的配置,包括保存的文件名等。 5077e41f4b71Sopenharmony_ci 5078e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5079e41f4b71Sopenharmony_ci 5080e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5081e41f4b71Sopenharmony_ci 5082e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 5083e41f4b71Sopenharmony_ci| ---------------------- | ------------------- | ---- | ------------------------------------------------ | 5084e41f4b71Sopenharmony_ci| title | string | 否 | 图片或者视频的标题。| 5085e41f4b71Sopenharmony_ci| fileNameExtension | string | 是 | 文件扩展名,例如'jpg'。| 5086e41f4b71Sopenharmony_ci| photoType | [PhotoType](#phototype) | 是 | 创建的文件类型,IMAGE或者VIDEO。| 5087e41f4b71Sopenharmony_ci| subtype | [PhotoSubtype](#photosubtype12) | 否 | 图片或者视频的文件子类型,DEFAULT或者MOVING_PHOTO。| 5088e41f4b71Sopenharmony_ci 5089e41f4b71Sopenharmony_ci## CompatibleMode<sup>13+</sup> 5090e41f4b71Sopenharmony_ci 5091e41f4b71Sopenharmony_ci配置转码模式。 5092e41f4b71Sopenharmony_ci 5093e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5094e41f4b71Sopenharmony_ci 5095e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 5096e41f4b71Sopenharmony_ci| ----- | ---- | ---- | 5097e41f4b71Sopenharmony_ci| FAST_ORIGINAL_FORMAT_MODE | 0 | 原视频资源内容模式。 | 5098e41f4b71Sopenharmony_ci| COMPATIBLE_FORMAT_MODE | 1 | 兼容模式,从HDR视频转换为SDR视频。 | 5099e41f4b71Sopenharmony_ci 5100e41f4b71Sopenharmony_ci## MediaAssetProgressHandler<sup>13+</sup> 5101e41f4b71Sopenharmony_ci 5102e41f4b71Sopenharmony_ci媒体资产进度处理器,应用在onProgress方法中获取媒体资产进度。 5103e41f4b71Sopenharmony_ci 5104e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5105e41f4b71Sopenharmony_ci 5106e41f4b71Sopenharmony_ci### onProgress<sup>13+</sup> 5107e41f4b71Sopenharmony_ci 5108e41f4b71Sopenharmony_cionProgress(progress: number): void 5109e41f4b71Sopenharmony_ci 5110e41f4b71Sopenharmony_ci当所请求的视频资源返回进度时系统会回调此方法。 5111e41f4b71Sopenharmony_ci 5112e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5113e41f4b71Sopenharmony_ci 5114e41f4b71Sopenharmony_ci**参数:** 5115e41f4b71Sopenharmony_ci 5116e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5117e41f4b71Sopenharmony_ci| ------- | ------- | ---- | -------------------------- | 5118e41f4b71Sopenharmony_ci| progress | number | 是 | 返回的进度百分比,范围为0~100。 | 5119