• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.file.photoAccessHelper (相册管理模块)(系统接口)
2
3该模块提供相册管理模块能力,包括创建相册以及访问、修改相册中的媒体数据信息等。
4
5> **说明:**
6>
7> - 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8> - 当前页面仅包含本模块的系统接口,其他公开接口参见[@ohos.file.photoAccessHelper (相册管理模块)](js-apis-photoAccessHelper.md)。
9
10## 导入模块
11
12```ts
13import { photoAccessHelper } from '@kit.MediaLibraryKit';
14```
15
16## PhotoAccessHelper
17
18### createAsset
19
20createAsset(displayName: string, callback: AsyncCallback<PhotoAsset>): void
21
22指定待创建的图片或者视频的文件名,创建图片或视频资源,使用callback方式返回结果。
23
24待创建的文件名参数规格为:
25- 应包含有效文件主名和图片或视频扩展名。
26- 文件名字符串长度为1~255。
27- 文件主名中不允许出现的非法英文字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ]
28
29**系统接口**:此接口为系统接口。
30
31**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
32
33**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
34
35**参数:**
36
37| 参数名   | 类型                     | 必填 | 说明                      |
38| -------- | ------------------------ | ---- | ------------------------- |
39| displayName  | string        | 是   | 创建的图片或者视频文件名。              |
40| callback |  AsyncCallback&lt;[PhotoAsset](#photoasset)&gt; | 是   | callback返回创建的图片和视频结果。 |
41
42**错误码:**
43
44接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
45
46| 错误码ID | 错误信息 |
47| -------- | ---------------------------------------- |
48| 202   |  Called by non-system application.         |
49| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
50| 13900012     | Permission denied.         |
51| 13900020     | Invalid argument.         |
52| 14000001      | Invalid display name.         |
53| 14000011       | System inner fail.         |
54
55**示例:**
56
57```ts
58async function example() {
59  console.info('createAssetDemo');
60  let testFileName: string = 'testFile' + Date.now() + '.jpg';
61  phAccessHelper.createAsset(testFileName, (err, photoAsset) => {
62    if (photoAsset !== undefined) {
63      console.info('createAsset file displayName' + photoAsset.displayName);
64      console.info('createAsset successfully');
65    } else {
66      console.error(`createAsset failed, error: ${err.code}, ${err.message}`);
67    }
68  });
69}
70```
71
72### createAsset
73
74createAsset(displayName: string): Promise&lt;PhotoAsset&gt;
75
76指定待创建的图片或者视频的文件名,创建图片或视频资源,使用Promise方式返回结果。
77
78待创建的文件名参数规格为:
79- 应包含有效文件主名和图片或视频扩展名。
80- 文件名字符串长度为1~255。
81- 文件主名中不允许出现的非法英文字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ]
82
83**系统接口**:此接口为系统接口。
84
85**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
86
87**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
88
89**参数:**
90
91| 参数名   | 类型                     | 必填 | 说明                      |
92| -------- | ------------------------ | ---- | ------------------------- |
93| displayName  | string        | 是   | 创建的图片或者视频文件名。              |
94
95**返回值:**
96
97| 类型                        | 说明           |
98| --------------------------- | -------------- |
99| Promise&lt;[PhotoAsset](#photoasset)&gt; | Promise对象,返回创建的图片和视频结果。 |
100
101**错误码:**
102
103接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
104
105| 错误码ID | 错误信息 |
106| -------- | ---------------------------------------- |
107| 202   |  Called by non-system application.         |
108| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
109| 13900012     | Permission denied.         |
110| 13900020     | Invalid argument.         |
111| 14000001      | Invalid display name.         |
112| 14000011       | System inner fail.         |
113
114**示例:**
115
116```ts
117async function example() {
118  console.info('createAssetDemo');
119  try {
120    let testFileName: string = 'testFile' + Date.now() + '.jpg';
121    let photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName);
122    console.info('createAsset file displayName' + photoAsset.displayName);
123    console.info('createAsset successfully');
124  } catch (err) {
125    console.error(`createAsset failed, error: ${err.code}, ${err.message}`);
126  }
127}
128```
129
130### createAsset
131
132createAsset(displayName: string, options: PhotoCreateOptions, callback: AsyncCallback&lt;PhotoAsset&gt;): void
133
134指定待创建的图片或者视频的文件名和创建选项,创建图片或视频资源,使用callback方式返回结果。
135
136待创建的文件名参数规格为:
137- 应包含有效文件主名和图片或视频扩展名。
138- 文件名字符串长度为1~255。
139- 文件主名中不允许出现的非法英文字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ]
140
141**系统接口**:此接口为系统接口。
142
143**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
144
145**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
146
147**参数:**
148
149| 参数名   | 类型                     | 必填 | 说明                      |
150| -------- | ------------------------ | ---- | ------------------------- |
151| displayName  | string        | 是   | 创建的图片或者视频文件名。              |
152| options  | [PhotoCreateOptions](#photocreateoptions)        | 是   | 图片或视频的创建选项。              |
153| callback |  AsyncCallback&lt;[PhotoAsset](#photoasset)&gt; | 是   | callback返回创建的图片和视频结果。 |
154
155**错误码:**
156
157接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
158
159| 错误码ID | 错误信息 |
160| -------- | ---------------------------------------- |
161| 202   |  Called by non-system application.         |
162| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
163| 13900012     | Permission denied.         |
164| 13900020     | Invalid argument.         |
165| 14000001      | Invalid display name.         |
166| 14000011       | System inner fail.         |
167
168**示例:**
169
170```ts
171async function example() {
172  console.info('createAssetDemo');
173  let testFileName: string = 'testFile' + Date.now() + '.jpg';
174  let createOption: photoAccessHelper.PhotoCreateOptions = {
175    subtype: photoAccessHelper.PhotoSubtype.DEFAULT
176  }
177  phAccessHelper.createAsset(testFileName, createOption, (err, photoAsset) => {
178    if (photoAsset !== undefined) {
179      console.info('createAsset file displayName' + photoAsset.displayName);
180      console.info('createAsset successfully');
181    } else {
182      console.error(`createAsset failed, error: ${err.code}, ${err.message}`);
183    }
184  });
185}
186```
187
188### createAsset
189
190createAsset(displayName: string, options: PhotoCreateOptions): Promise&lt;PhotoAsset&gt;
191
192指定待创建的图片或者视频的文件名和创建选项,创建图片或视频资源,使用Promise方式返回结果。
193
194待创建的文件名参数规格为:
195- 应包含有效文件主名和图片或视频扩展名。
196- 文件名字符串长度为1~255。
197- 文件主名中不允许出现的非法英文字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ]
198
199**系统接口**:此接口为系统接口。
200
201**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
202
203**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
204
205**参数:**
206
207| 参数名   | 类型                     | 必填 | 说明                      |
208| -------- | ------------------------ | ---- | ------------------------- |
209| displayName  | string        | 是   | 创建的图片或者视频文件名。              |
210| options  |  [PhotoCreateOptions](#photocreateoptions)       | 是   | 图片或视频的创建选项。              |
211
212**返回值:**
213
214| 类型                        | 说明           |
215| --------------------------- | -------------- |
216| Promise&lt;[PhotoAsset](#photoasset)&gt; | Promise对象,返回创建的图片和视频结果。 |
217
218**错误码:**
219
220接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
221
222| 错误码ID | 错误信息 |
223| -------- | ---------------------------------------- |
224| 202   |  Called by non-system application.         |
225| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
226| 13900012     | Permission denied.         |
227| 13900020     | Invalid argument.         |
228| 14000001      | Invalid display name.         |
229| 14000011       | System inner fail.         |
230
231**示例:**
232
233```ts
234async function example() {
235  console.info('createAssetDemo');
236  try {
237    let testFileName:string = 'testFile' + Date.now() + '.jpg';
238    let createOption: photoAccessHelper.PhotoCreateOptions = {
239      subtype: photoAccessHelper.PhotoSubtype.DEFAULT
240    }
241    let photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName, createOption);
242    console.info('createAsset file displayName' + photoAsset.displayName);
243    console.info('createAsset successfully');
244  } catch (err) {
245    console.error(`createAsset failed, error: ${err.code}, ${err.message}`);
246  }
247}
248```
249
250### createAlbum<sup>(deprecated)</sup>
251
252createAlbum(name: string, callback: AsyncCallback&lt;Album&gt;): void
253
254创建相册,使用callback方式返回结果。
255
256待创建的相册名参数规格为:
257- 相册名字符串长度为1~255。
258- 不允许出现的非法英文字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ]
259- 英文字符大小写不敏感。
260- 相册名不允许重名。
261
262> **说明:**
263>
264> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.createAlbumRequest](#createalbumrequest11)替代。
265
266**系统接口**:此接口为系统接口。
267
268**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
269
270**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
271
272**参数:**
273
274| 参数名   | 类型                     | 必填 | 说明                      |
275| -------- | ------------------------ | ---- | ------------------------- |
276| name  | string         | 是   | 待创建相册的相册名。              |
277| callback |  AsyncCallback&lt;[Album](#album)&gt; | 是   | callback返回创建的相册实例。 |
278
279**错误码:**
280
281接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
282
283| 错误码ID | 错误信息 |
284| -------- | ---------------------------------------- |
285| 202   |  Called by non-system application.         |
286| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
287| 13900012     | Permission denied.         |
288| 13900015       |  File exists.         |
289| 13900020     | Invalid argument.         |
290| 14000011       | System inner fail.         |
291
292**示例:**
293
294```ts
295async function example() {
296  console.info('createAlbumDemo');
297  let albumName: string = 'newAlbumName' + new Date().getTime();
298  phAccessHelper.createAlbum(albumName, (err, album) => {
299    if (err) {
300      console.error(`createAlbumCallback failed with err: ${err.code}, ${err.message}`);
301      return;
302    }
303    console.info('createAlbumCallback successfully, album: ' + album.albumName + ' album uri: ' + album.albumUri);
304  });
305}
306```
307
308### createAlbum<sup>(deprecated)</sup>
309
310createAlbum(name: string): Promise&lt;Album&gt;
311
312创建相册,使用Promise方式返回结果。
313
314待创建的相册名参数规格为:
315- 相册名字符串长度为1~255。
316- 不允许出现的非法英文字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ]
317- 英文字符大小写不敏感。
318- 相册名不允许重名。
319
320> **说明:**
321>
322> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.createAlbumRequest](#createalbumrequest11)替代。
323
324**系统接口**:此接口为系统接口。
325
326**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
327
328**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
329
330**参数:**
331
332| 参数名   | 类型                     | 必填 | 说明                      |
333| -------- | ------------------------ | ---- | ------------------------- |
334| name  | string         | 是   | 待创建相册的相册名。              |
335
336**返回值:**
337
338| 类型                        | 说明           |
339| --------------------------- | -------------- |
340| Promise&lt;[Album](#album)&gt; | Promise对象,返回创建的相册实例。 |
341
342**错误码:**
343
344接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
345
346| 错误码ID | 错误信息 |
347| -------- | ---------------------------------------- |
348| 202   |  Called by non-system application.         |
349| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
350| 13900012     | Permission denied.         |
351| 13900015       |  File exists.         |
352| 13900020     | Invalid argument.         |
353| 14000011       | System inner fail.         |
354
355**示例:**
356
357```ts
358import { BusinessError } from '@kit.BasicServicesKit';
359
360async function example() {
361  console.info('createAlbumDemo');
362  let albumName: string = 'newAlbumName' + new Date().getTime();
363  phAccessHelper.createAlbum(albumName).then((album) => {
364    console.info('createAlbumPromise successfully, album: ' + album.albumName + ' album uri: ' + album.albumUri);
365  }).catch((err: BusinessError) => {
366    console.error(`createAlbumPromise failed with err: ${err.code}, ${err.message}`);
367  });
368}
369```
370
371### deleteAlbums<sup>(deprecated)</sup>
372
373deleteAlbums(albums: Array&lt;Album&gt;, callback: AsyncCallback&lt;void&gt;): void
374
375删除相册,使用callback方式返回结果。
376
377删除相册前需先确保相册存在,只能删除用户相册。
378
379> **说明:**
380>
381> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.deleteAlbums](#deletealbums11)替代。
382
383**系统接口**:此接口为系统接口。
384
385**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
386
387**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
388
389**参数:**
390
391| 参数名   | 类型                     | 必填 | 说明                      |
392| -------- | ------------------------ | ---- | ------------------------- |
393| albums  | Array&lt;[Album](#album)&gt;         | 是   | 待删除相册的数组。              |
394| callback |  AsyncCallback&lt;void&gt; | 是   | callback返回void。 |
395
396**错误码:**
397
398接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
399
400| 错误码ID | 错误信息 |
401| -------- | ---------------------------------------- |
402| 202   |  Called by non-system application.         |
403| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
404| 13900012     | Permission denied.         |
405| 13900020     | Invalid argument.         |
406| 14000011       | System inner fail.         |
407
408**示例:**
409
410```ts
411import { dataSharePredicates } from '@kit.ArkData';
412
413async function example() {
414  // 示例代码为删除相册名为newAlbumName的相册。
415  console.info('deleteAlbumsDemo');
416  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
417  predicates.equalTo('album_name', 'newAlbumName');
418  let fetchOptions: photoAccessHelper.FetchOptions = {
419    fetchColumns: [],
420    predicates: predicates
421  };
422  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions);
423  let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
424  phAccessHelper.deleteAlbums([album], (err) => {
425    if (err) {
426      console.error(`deletePhotoAlbumsCallback failed with err: ${err.code}, ${err.message}`);
427      return;
428    }
429    console.info('deletePhotoAlbumsCallback successfully');
430  });
431  fetchResult.close();
432}
433```
434
435### deleteAlbums<sup>(deprecated)</sup>
436
437deleteAlbums(albums: Array&lt;Album&gt;): Promise&lt;void&gt;
438
439删除相册,使用Promise方式返回结果。
440
441删除相册前需先确保相册存在,只能删除用户相册。
442
443> **说明:**
444>
445> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.deleteAlbums](#deletealbums11)替代。
446
447**系统接口**:此接口为系统接口。
448
449**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
450
451**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
452
453**参数:**
454
455| 参数名   | 类型                     | 必填 | 说明                      |
456| -------- | ------------------------ | ---- | ------------------------- |
457| albums  |  Array&lt;[Album](#album)&gt;          | 是   | 待删除相册的数组。              |
458
459**返回值:**
460
461| 类型                        | 说明           |
462| --------------------------- | -------------- |
463| Promise&lt;void&gt; | Promise对象,返回void。 |
464
465**错误码:**
466
467接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
468
469| 错误码ID | 错误信息 |
470| -------- | ---------------------------------------- |
471| 202   |  Called by non-system application.         |
472| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
473| 13900012     | Permission denied.         |
474| 13900020     | Invalid argument.         |
475| 14000011       | System inner fail.         |
476
477**示例:**
478
479```ts
480import { dataSharePredicates } from '@kit.ArkData';
481import { BusinessError } from '@kit.BasicServicesKit';
482
483async function example() {
484  // 示例代码为删除相册名为newAlbumName的相册。
485  console.info('deleteAlbumsDemo');
486  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
487  predicates.equalTo('album_name', 'newAlbumName');
488  let fetchOptions: photoAccessHelper.FetchOptions = {
489    fetchColumns: [],
490    predicates: predicates
491  };
492  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions);
493  let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
494  phAccessHelper.deleteAlbums([album]).then(() => {
495    console.info('deletePhotoAlbumsPromise successfully');
496    }).catch((err: BusinessError) => {
497      console.error(`deletePhotoAlbumsPromise failed with err: ${err.code}, ${err.message}`);
498  });
499  fetchResult.close();
500}
501```
502
503### getHiddenAlbums<sup>11+</sup>
504
505getHiddenAlbums(mode: HiddenPhotosDisplayMode, options: FetchOptions, callback: AsyncCallback&lt;FetchResult&lt;Album&gt;&gt;): void
506
507根据隐藏文件显示模式和检索选项获取系统中的隐藏相册,使用callback方式返回结果。
508
509**系统接口**:此接口为系统接口。
510
511**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.MANAGE_PRIVATE_PHOTOS
512
513**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
514
515**参数:**
516
517| 参数名   | 类型                     | 必填 | 说明                      |
518| -------- | ------------------------ | ---- | ------------------------- |
519| mode  | [HiddenPhotosDisplayMode](#hiddenphotosdisplaymode11)         | 是   | 隐藏文件显示模式  |
520| options  | [FetchOptions](js-apis-photoAccessHelper.md#fetchoptions)         | 是   |  检索选项  |
521| callback |  AsyncCallback&lt;[FetchResult](js-apis-photoAccessHelper.md#fetchresult)&lt;[Album](#album)&gt;&gt; | 是   | callback返回获取相册的结果集。 |
522
523**错误码:**
524
525接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
526
527| 错误码ID | 错误信息 |
528| -------- | ---------------------------------------- |
529| 201      |  Permission verification failed, usually the result returned by VerifyAccessToken.         |
530| 202      |  Permission verification failed, application which is not a system application uses system API.         |
531| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
532| 14000011       | System inner fail.         |
533
534**示例:**
535
536```ts
537import { dataSharePredicates } from '@kit.ArkData';
538
539// 获取系统中包含隐藏文件且相册名为'newAlbumName'的相册
540async function getHiddenAlbumsView() {
541  console.info('getHiddenAlbumsViewDemo');
542  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
543  predicates.equalTo('album_name', 'newAlbumName');
544  let fetchOptions: photoAccessHelper.FetchOptions = {
545    fetchColumns: [],
546    predicates: predicates
547  };
548  phAccessHelper.getHiddenAlbums(photoAccessHelper.HiddenPhotosDisplayMode.ALBUMS_MODE, fetchOptions,
549    async (err, fetchResult) => {
550      if (fetchResult === undefined) {
551        console.error('getHiddenAlbumsViewCallback fetchResult is undefined');
552        return;
553      }
554      let album = await fetchResult.getFirstObject();
555      console.info('getHiddenAlbumsViewCallback successfully, album name: ' + album.albumName);
556      fetchResult.close();
557  });
558}
559```
560
561### getHiddenAlbums<sup>11+</sup>
562
563getHiddenAlbums(mode: HiddenPhotosDisplayMode, callback: AsyncCallback&lt;FetchResult&lt;Album&gt;&gt;): void
564
565根据隐藏文件显示模式获取系统中的隐藏相册,使用callback方式返回结果
566
567**系统接口**:此接口为系统接口。
568
569**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.MANAGE_PRIVATE_PHOTOS
570
571**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
572
573**参数:**
574
575| 参数名   | 类型                     | 必填 | 说明                      |
576| -------- | ------------------------ | ---- | ------------------------- |
577| mode  | [HiddenPhotosDisplayMode](#hiddenphotosdisplaymode11)         | 是   | 隐藏文件显示模式  |
578| callback |  AsyncCallback&lt;[FetchResult](js-apis-photoAccessHelper.md#fetchresult)&lt;[Album](#album)&gt;&gt; | 是   | callback返回获取相册的结果集。 |
579
580**错误码:**
581
582接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
583
584| 错误码ID | 错误信息 |
585| -------- | ---------------------------------------- |
586| 201      |  Permission verification failed, usually the result returned by VerifyAccessToken.         |
587| 202      |  Permission verification failed, application which is not a system application uses system API.         |
588| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
589| 14000011       | System inner fail.         |
590
591**示例:**
592
593```ts
594import { dataSharePredicates } from '@kit.ArkData';
595
596// 获取系统预置的隐藏相册
597async function getSysHiddenAlbum() {
598  console.info('getSysHiddenAlbumDemo');
599  phAccessHelper.getHiddenAlbums(photoAccessHelper.HiddenPhotosDisplayMode.ASSETS_MODE, async (err, fetchResult) => {
600    if (fetchResult === undefined) {
601      console.error('getSysHiddenAlbumCallback fetchResult is undefined');
602      return;
603    }
604    let hiddenAlbum: photoAccessHelper.Album = await fetchResult.getFirstObject();
605    console.info('getSysHiddenAlbumCallback successfully, albumUri: ' + hiddenAlbum.albumUri);
606    fetchResult.close();
607  });
608}
609
610// 获取隐藏相册-相册视图,即系统中包含隐藏文件的相册(不包含系统预置的隐藏相册本身和回收站相册)
611async function getHiddenAlbumsView() {
612  console.info('getHiddenAlbumsViewDemo');
613  phAccessHelper.getHiddenAlbums(photoAccessHelper.HiddenPhotosDisplayMode.ALBUMS_MODE, async (err, fetchResult) => {
614    if (fetchResult === undefined) {
615      console.error('getHiddenAlbumsViewCallback fetchResult is undefined');
616      return;
617    }
618    let albums: Array<photoAccessHelper.Album> = await fetchResult.getAllObjects();
619    console.info('getHiddenAlbumsViewCallback successfully, albums size: ' + albums.length);
620
621    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
622    let fetchOption: photoAccessHelper.FetchOptions = {
623      fetchColumns: [],
624      predicates: predicates
625    };
626    for (let i = 0; i < albums.length; i++) {
627      // 获取相册中的隐藏文件
628      albums[i].getAssets(fetchOption, (err, assetFetchResult) => {
629        console.info('album get hidden assets successfully, getCount: ' + assetFetchResult.getCount());
630      });
631    }
632    fetchResult.close();
633  });
634}
635```
636
637### getHiddenAlbums<sup>11+</sup>
638
639getHiddenAlbums(mode: HiddenPhotosDisplayMode, options?: FetchOptions): Promise&lt;FetchResult&lt;Album&gt;&gt;
640
641根据隐藏文件显示模式和检索选项获取系统中的隐藏相册,使用Promise方式返回结果。
642
643**系统接口**:此接口为系统接口。
644
645**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.MANAGE_PRIVATE_PHOTOS
646
647**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
648
649**参数:**
650
651| 参数名   | 类型                     | 必填 | 说明                      |
652| -------- | ------------------------ | ---- | ------------------------- |
653| mode  | [HiddenPhotosDisplayMode](#hiddenphotosdisplaymode11)         | 是   | 隐藏文件显示模式  |
654| options  | [FetchOptions](js-apis-photoAccessHelper.md#fetchoptions)         | 否   |  检索选项,不填时默认根据隐藏文件显示模式检索。      |
655
656**返回值:**
657
658| 类型                        | 说明           |
659| --------------------------- | -------------- |
660| Promise&lt;[FetchResult](js-apis-photoAccessHelper.md#fetchresult)&lt;[Album](#album)&gt;&gt; | Promise对象,返回获取相册的结果集。
661
662**错误码:**
663
664接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
665
666| 错误码ID | 错误信息 |
667| -------- | ---------------------------------------- |
668| 201      |  Permission verification failed, usually the result returned by VerifyAccessToken.         |
669| 202      |  Permission verification failed, application which is not a system application uses system API.         |
670| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
671| 14000011       | System inner fail.         |
672
673**示例:**
674
675```ts
676import { dataSharePredicates } from '@kit.ArkData';
677import { BusinessError } from '@kit.BasicServicesKit';
678
679// 获取系统预置的隐藏相册
680async function getSysHiddenAlbum() {
681  console.info('getSysHiddenAlbumDemo');
682  phAccessHelper.getHiddenAlbums(photoAccessHelper.HiddenPhotosDisplayMode.ASSETS_MODE)
683    .then( async (fetchResult) => {
684      if (fetchResult === undefined) {
685        console.error('getSysHiddenAlbumPromise fetchResult is undefined');
686        return;
687      }
688      let hiddenAlbum: photoAccessHelper.Album = await fetchResult.getFirstObject();
689      console.info('getAlbumsPromise successfully, albumUri: ' + hiddenAlbum.albumUri);
690      fetchResult.close();
691    }).catch((err: BusinessError) => {
692      console.error(`getSysHiddenAlbumPromise failed with err: ${err.code}, ${err.message}`);
693    });
694}
695
696// 获取隐藏相册-相册视图,即系统中包含隐藏文件的相册(不包含系统预置的隐藏相册本身和回收站相册)
697async function getHiddenAlbumsView() {
698  console.info('getHiddenAlbumsViewDemo');
699  phAccessHelper.getHiddenAlbums(photoAccessHelper.HiddenPhotosDisplayMode.ALBUMS_MODE).then( async (fetchResult) => {
700    if (fetchResult === undefined) {
701      console.error('getHiddenAlbumsViewPromise fetchResult is undefined');
702      return;
703    }
704    let albums: Array<photoAccessHelper.Album> = await fetchResult.getAllObjects();
705    console.info('getHiddenAlbumsViewPromise successfully, albums size: ' + albums.length);
706
707    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
708    let fetchOption: photoAccessHelper.FetchOptions = {
709      fetchColumns: [],
710      predicates: predicates
711    };
712    for (let i = 0; i < albums.length; i++) {
713      // 获取相册中的隐藏文件
714      albums[i].getAssets(fetchOption).then((assetFetchResult) => {
715        console.info('album get hidden assets successfully, getCount: ' + assetFetchResult.getCount());
716      }).catch((err: BusinessError) => {
717        console.error(`album get hidden assets failed with error: ${err.code}, ${err.message}`);
718      });
719    }
720    fetchResult.close();
721  }).catch((err: BusinessError) => {
722    console.error(`getHiddenAlbumsViewPromise failed with err: ${err.code}, ${err.message}`);
723  });
724}
725```
726
727### deleteAssets<sup>(deprecated)</sup>
728
729deleteAssets(uriList: Array&lt;string&gt;, callback: AsyncCallback&lt;void&gt;): void
730
731删除媒体文件,删除的文件进入到回收站,使用callback方式返回结果。
732
733> **说明:**
734>
735> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.deleteAssets](js-apis-photoAccessHelper.md#deleteassets11)替代。
736
737**系统接口**:此接口为系统接口。
738
739**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
740
741**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
742
743**参数:**
744
745| 参数名   | 类型                      | 必填 | 说明       |
746| -------- | ------------------------- | ---- | ---------- |
747| uriList | Array&lt;string&gt; | 是   | 待删除的媒体文件uri数组。 |
748| callback | AsyncCallback&lt;void&gt; | 是   | callback返回void。 |
749
750**错误码:**
751
752接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
753
754| 错误码ID | 错误信息 |
755| -------- | ---------------------------------------- |
756| 202   |  Called by non-system application.         |
757| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
758| 13900012     | Permission denied.         |
759| 13900020     | Invalid argument.         |
760| 14000002       | Invalid uri.         |
761| 14000011       | System inner fail.         |
762
763**示例:**
764
765```ts
766import { dataSharePredicates } from '@kit.ArkData';
767
768async function example() {
769  console.info('deleteAssetDemo');
770  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
771  let fetchOptions: photoAccessHelper.FetchOptions = {
772    fetchColumns: [],
773    predicates: predicates
774  };
775  try {
776    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
777    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
778    if (asset === undefined) {
779      console.error('asset not exist');
780      return;
781    }
782    phAccessHelper.deleteAssets([asset.uri], (err) => {
783      if (err === undefined) {
784        console.info('deleteAssets successfully');
785      } else {
786        console.error(`deleteAssets failed with error: ${err.code}, ${err.message}`);
787      }
788    });
789  } catch (err) {
790    console.error(`fetch failed, error: ${err.code}, ${err.message}`);
791  }
792}
793```
794
795### deleteAssets<sup>(deprecated)</sup>
796
797deleteAssets(uriList: Array&lt;string&gt;): Promise&lt;void&gt;
798
799删除媒体文件,删除的文件进入到回收站,使用Promise方式返回结果。
800
801> **说明:**
802>
803> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.deleteAssets](js-apis-photoAccessHelper.md#deleteassets11)替代。
804
805**系统接口**:此接口为系统接口。
806
807**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
808
809**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
810
811**参数:**
812
813| 参数名   | 类型                      | 必填 | 说明       |
814| -------- | ------------------------- | ---- | ---------- |
815| uriList | Array&lt;string&gt; | 是   | 待删除的媒体文件uri数组。 |
816
817**返回值:**
818
819| 类型                                    | 说明              |
820| --------------------------------------- | ----------------- |
821| Promise&lt;void&gt;| Promise对象,返回void。 |
822
823**错误码:**
824
825接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
826
827| 错误码ID | 错误信息 |
828| -------- | ---------------------------------------- |
829| 202   |  Called by non-system application.         |
830| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
831| 13900012     | Permission denied.         |
832| 13900020     | Invalid argument.         |
833| 14000002       | Invalid uri.         |
834| 14000011       | System inner fail.         |
835
836**示例:**
837
838```ts
839import { dataSharePredicates } from '@kit.ArkData';
840
841async function example() {
842  console.info('deleteDemo');
843  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
844  let fetchOptions: photoAccessHelper.FetchOptions = {
845    fetchColumns: [],
846    predicates: predicates
847  };
848  try {
849    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
850    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
851    if (asset === undefined) {
852      console.error('asset not exist');
853      return;
854    }
855    await phAccessHelper.deleteAssets([asset.uri]);
856    console.info('deleteAssets successfully');
857  } catch (err) {
858    console.error(`deleteAssets failed with error: ${err.code}, ${err.message}`);
859  }
860}
861```
862
863### getPhotoIndex
864
865getPhotoIndex(photoUri: string, albumUri: string, options: FetchOptions, callback: AsyncCallback&lt;number&gt;): void
866
867获取相册中图片或视频的位置,使用callback方式返回结果。
868
869**系统接口**:此接口为系统接口。
870
871**需要权限**:ohos.permission.READ_IMAGEVIDEO
872
873**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
874
875**参数:**
876
877| 参数名   | 类型                      | 必填 | 说明       |
878| -------- | ------------------------- | ---- | ---------- |
879| photoUri | string | 是   | 所查询的图库资源的uri。 |
880| albumUri | string | 是   | 相册uri,可以为空字符串,为空字符串时默认查询全部图库资源。   |
881| options  | [FetchOptions](js-apis-photoAccessHelper.md#fetchoptions)       | 是   |  检索选项,predicates中必须设置一种检索排序方式,不设置或多设置均会导致接口调用异常。      |
882| callback | AsyncCallback&lt;number&gt;| 是   | callback返回相册中资源的索引。 |
883
884**错误码:**
885
886接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
887
888| 错误码ID | 错误信息 |
889| -------- | ---------------------------------------- |
890| 202     |  Called by non-system application.         |
891| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
892| 13900012     | Permission denied.         |
893| 13900020     | Invalid argument.         |
894| 14000011       | System inner fail.         |
895
896**示例:**
897
898```ts
899import { dataSharePredicates } from '@kit.ArkData';
900
901async function example() {
902  try {
903    console.info('getPhotoIndexDemo');
904    let predicatesForGetAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
905    let fetchOp: photoAccessHelper.FetchOptions = {
906      fetchColumns: [],
907      predicates: predicatesForGetAsset
908    };
909    // Obtain the uri of the album
910    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.FAVORITE, fetchOp);
911    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
912    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
913    predicates.orderByAsc(photoAccessHelper.PhotoKeys.DATE_MODIFIED);
914    let fetchOptions: photoAccessHelper.FetchOptions = {
915      fetchColumns: [photoAccessHelper.PhotoKeys.DATE_MODIFIED],
916      predicates: predicates
917    };
918    let photoFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions);
919    let expectIndex = 1;
920    // Obtain the uri of the second file
921    let photoAsset: photoAccessHelper.PhotoAsset = await photoFetchResult.getObjectByPosition(expectIndex);
922
923    phAccessHelper.getPhotoIndex(photoAsset.uri, album.albumUri, fetchOptions, (err, index) => {
924      if (err === undefined) {
925        console.info(`getPhotoIndex successfully and index is : ${index}`);
926      } else {
927        console.error(`getPhotoIndex failed; error: ${err.code}, ${err.message}`);
928      }
929    });
930  } catch (error) {
931    console.error(`getPhotoIndex failed; error: ${error.code}, ${error.message}`);
932  }
933}
934```
935
936### getPhotoIndex
937
938getPhotoIndex(photoUri: string, albumUri: string, options: FetchOptions): Promise&lt;number&gt;
939
940获取相册中图片或视频的位置,使用Promise方式返回结果。
941
942**系统接口**:此接口为系统接口。
943
944**需要权限**:ohos.permission.READ_IMAGEVIDEO
945
946**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
947
948**参数:**
949
950| 参数名   | 类型                      | 必填 | 说明       |
951| -------- | ------------------------- | ---- | ---------- |
952| photoUri | string | 是   | 所查询的图库资源的uri。 |
953| albumUri | string | 是   | 相册uri,可以为空字符串,为空字符串时默认查询全部图库资源。   |
954| options  | [FetchOptions](js-apis-photoAccessHelper.md#fetchoptions)       | 是   |  检索选项,predicates中必须设置一种检索排序方式,不设置或多设置均会导致接口调用异常。      |
955
956**返回值:**
957
958| 类型                                    | 说明              |
959| --------------------------------------- | ----------------- |
960| Promise&lt;number&gt;| 返回相册中资源的索引。 |
961
962**错误码:**
963
964接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
965
966| 错误码ID | 错误信息 |
967| -------- | ---------------------------------------- |
968| 202     |  Called by non-system application.         |
969| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
970| 13900012     | Permission denied.         |
971| 13900020     | Invalid argument.         |
972| 14000011       | System inner fail.         |
973
974**示例:**
975
976```ts
977import { dataSharePredicates } from '@kit.ArkData';
978import { BusinessError } from '@kit.BasicServicesKit';
979
980async function example() {
981  try {
982    console.info('getPhotoIndexDemo');
983    let predicatesForGetAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
984    let fetchOp: photoAccessHelper.FetchOptions = {
985      fetchColumns: [],
986      predicates: predicatesForGetAsset
987    };
988    // Obtain the uri of the album
989    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.FAVORITE, fetchOp);
990    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
991    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
992    predicates.orderByAsc(photoAccessHelper.PhotoKeys.DATE_MODIFIED);
993    let fetchOptions: photoAccessHelper.FetchOptions = {
994      fetchColumns: [photoAccessHelper.PhotoKeys.DATE_MODIFIED],
995      predicates: predicates
996    };
997    let photoFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions);
998    let expectIndex = 1;
999    // Obtain the uri of the second file
1000    let photoAsset: photoAccessHelper.PhotoAsset = await photoFetchResult.getObjectByPosition(expectIndex);
1001    phAccessHelper.getPhotoIndex(photoAsset.uri, album.albumUri, fetchOptions).then((index) => {
1002      console.info(`getPhotoIndex successfully and index is : ${index}`);
1003    }).catch((err: BusinessError) => {
1004      console.error(`getPhotoIndex failed; error: ${err.code}, ${err.message}`);
1005    });
1006  } catch (error) {
1007    console.error(`getPhotoIndex failed; error: ${error.code}, ${error.message}`);
1008  }
1009}
1010```
1011
1012### saveFormInfo<sup>11+</sup>
1013
1014saveFormInfo(info:FormInfo, callback: AsyncCallback&lt;void&gt;):void
1015
1016将图库卡片相关信息保存到数据库中,使用callback方式返回结果。
1017
1018**系统接口**:此接口为系统接口。
1019
1020**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1021
1022**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1023
1024**参数:**
1025
1026| 参数名   | 类型                     | 必填 | 说明                      |
1027| -------- | ------------------------ | ---- | ------------------------- |
1028| info  | [FormInfo](#forminfo11)        | 是   | 图库卡片信息,包括图库卡片的id和卡片绑定的图片的uri。              |
1029| callback |  AsyncCallback&lt;void&gt; | 是   | callback返回void。 |
1030
1031**错误码:**
1032
1033接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1034
1035| 错误码ID | 错误信息 |
1036| -------- | ---------------------------------------- |
1037| 201   | Permission verification failed, usually the result returned by VerifyAccessToken.         |
1038| 202   | Permission verification failed, application which is not a system application uses system API.         |
1039| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1040| 14000011       | System inner fail.         |
1041
1042
1043**示例:**
1044
1045```ts
1046import { dataSharePredicates } from '@kit.ArkData';
1047import { BusinessError } from '@kit.BasicServicesKit';
1048
1049async function example() {
1050  console.info('saveFormInfoDemo');
1051  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
1052  let fetchOptions: photoAccessHelper.FetchOptions = {
1053    fetchColumns: [],
1054    predicates: predicates
1055  };
1056  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
1057  let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
1058
1059  let info: photoAccessHelper.FormInfo = {
1060    //formId是一个由纯数字组成的字符串,uri为图库中存在的图片的uri信息,图库中无图片创建卡片时uri需为空字符串
1061    formId : "20230116123",
1062    uri: photoAsset.uri,
1063  }
1064
1065  phAccessHelper.saveFormInfo(info, async (err: BusinessError) => {
1066    if (err == undefined) {
1067      console.info('saveFormInfo success');
1068    } else {
1069      console.error(`saveFormInfo fail with error: ${err.code}, ${err.message}`);
1070    }
1071  });
1072}
1073```
1074
1075### saveFormInfo<sup>11+</sup>
1076
1077saveFormInfo(info:FormInfo):Promise&lt;void&gt;
1078
1079将图库卡片相关信息保存到数据库中,使用Promise方式返回结果。
1080
1081**系统接口**:此接口为系统接口。
1082
1083**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1084
1085**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1086
1087**参数:**
1088
1089| 参数名   | 类型                     | 必填 | 说明                      |
1090| -------- | ------------------------ | ---- | ------------------------- |
1091| info  | [FormInfo](#forminfo11)        | 是   | 图库卡片信息,包括图库卡片的id和卡片绑定的图片的uri。              |
1092
1093**返回值:**
1094
1095| 类型                                    | 说明              |
1096| --------------------------------------- | ----------------- |
1097| Promise&lt;void&gt;| Promise对象,返回void。 |
1098
1099**错误码:**
1100
1101接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1102
1103| 错误码ID | 错误信息 |
1104| -------- | ---------------------------------------- |
1105| 201   | Permission verification failed, usually the result returned by VerifyAccessToken.         |
1106| 202   | Permission verification failed, application which is not a system application uses system API.         |
1107| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1108| 14000011       | System inner fail.         |
1109
1110**示例:**
1111
1112```ts
1113import { dataSharePredicates } from '@kit.ArkData';
1114import { BusinessError } from '@kit.BasicServicesKit';
1115
1116async function example() {
1117  console.info('saveFormInfoDemo');
1118  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
1119  let fetchOptions: photoAccessHelper.FetchOptions = {
1120    fetchColumns: [],
1121    predicates: predicates
1122  };
1123  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
1124  let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
1125
1126  let info: photoAccessHelper.FormInfo = {
1127    //formId是一个由纯数字组成的字符串,uri为图库中存在的图片的uri信息,图库中无图片创建卡片时uri需为空字符串
1128    formId: "20230116123",
1129    uri: photoAsset.uri,
1130  }
1131
1132  phAccessHelper.saveFormInfo(info).then(() => {
1133    console.info('saveFormInfo successfully');
1134  }).catch((err: BusinessError) => {
1135    console.error(`saveFormInfo failed with error: ${err.code}, ${err.message}`);
1136  });
1137}
1138```
1139
1140### removeFormInfo<sup>11+</sup>
1141
1142removeFormInfo(info:FormInfo, callback: AsyncCallback&lt;void&gt;):void
1143
1144从数据库中删除图库卡片信息,使用callback方式返回结果。
1145
1146**系统接口**:此接口为系统接口。
1147
1148**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1149
1150**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1151
1152**参数:**
1153
1154| 参数名   | 类型                     | 必填 | 说明                      |
1155| -------- | ------------------------ | ---- | ------------------------- |
1156| info  | [FormInfo](#forminfo11)        | 是   |  图库卡片信息,包括图库卡片的id和卡片绑定的图片的uri。              |
1157| callback |  AsyncCallback&lt;void&gt; | 是   | callback返回void。 |
1158
1159**错误码:**
1160
1161接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1162
1163| 错误码ID | 错误信息 |
1164| -------- | ---------------------------------------- |
1165| 201   | Permission verification failed, usually the result returned by VerifyAccessToken.         |
1166| 202   | Permission verification failed, application which is not a system application uses system API.         |
1167| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1168| 14000011       | System inner fail.         |
1169
1170**示例:**
1171
1172```ts
1173import { BusinessError } from '@kit.BasicServicesKit';
1174
1175async function example() {
1176  console.info('removeFormInfoDemo');
1177  let info: photoAccessHelper.FormInfo = {
1178    //formId是一个由纯数字组成的字符串,移除卡片的时候uri填空即可
1179    formId: "20230116123",
1180    uri: "",
1181  }
1182
1183  phAccessHelper.removeFormInfo(info, async (err: BusinessError) => {
1184    if (err == undefined) {
1185      console.info('removeFormInfo success');
1186    } else {
1187      console.error(`removeFormInfo fail with error: ${err.code}, ${err.message}`);
1188    }
1189  });
1190}
1191```
1192
1193### removeFormInfo<sup>11+</sup>
1194
1195removeFormInfo(info:FormInfo):Promise&lt;void&gt;
1196
1197从数据库中删除图库卡片信息,使用Promise方式返回结果。
1198
1199**系统接口**:此接口为系统接口。
1200
1201**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1202
1203**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1204
1205**参数:**
1206
1207| 参数名   | 类型                     | 必填 | 说明                      |
1208| -------- | ------------------------ | ---- | ------------------------- |
1209| info  | [FormInfo](#forminfo11)        | 是   |  图库卡片信息,包括图库卡片的id和卡片绑定的图片的uri。              |
1210
1211**返回值:**
1212
1213| 类型                                    | 说明              |
1214| --------------------------------------- | ----------------- |
1215| Promise&lt;void&gt;| Promise对象,返回void。 |
1216
1217**错误码:**
1218
1219接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1220
1221| 错误码ID | 错误信息 |
1222| -------- | ---------------------------------------- |
1223| 201   | Permission verification failed, usually the result returned by VerifyAccessToken.         |
1224| 202   | Permission verification failed, application which is not a system application uses system API.         |
1225| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1226| 14000011       | System inner fail.         |
1227
1228**示例:**
1229
1230```ts
1231import { BusinessError } from '@kit.BasicServicesKit';
1232
1233async function example() {
1234  console.info('removeFormInfoDemo');
1235  let info: photoAccessHelper.FormInfo = {
1236    //formId是一个由纯数字组成的字符串,移除卡片的时候uri填空即可
1237    formId: "20230116123",
1238    uri: "",
1239  }
1240
1241  phAccessHelper.removeFormInfo(info).then(() => {
1242    console.info('removeFormInfo successfully');
1243  }).catch((err: BusinessError) => {
1244    console.error(`removeFormInfo failed with error: ${err.code}, ${err.message}`);
1245  });
1246}
1247```
1248
1249### createAssetsForApp<sup>12+</sup>
1250
1251createAssetsForApp(bundleName: string, appName: string, appId: string, photoCreationConfigs: Array&lt;PhotoCreationConfig&gt;): Promise&lt;Array&lt;string&gt;&gt;
1252
1253调用接口代替应用创建媒体库uri列表。Uri已对appId对应的应用授权,支持应用使用uri写入图片/视频。
1254
1255**系统接口**:此接口为系统接口。
1256
1257**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1258
1259**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1260
1261**参数:**
1262
1263| 参数名   | 类型                                                                   | 必填 | 说明                      |
1264| -------- |----------------------------------------------------------------------| ---- | ------------------------- |
1265| bundleName | string | 是 | 需保存图片/视频文件的应用bundle name。 |
1266| appName | string | 是 | 需保存图片/视频文件的应用app name。 |
1267| appId | string | 是 | 需保存图片/视频文件的应用app id。 |
1268| photoCreationConfigs | Array&lt;[PhotoCreationConfig](./js-apis-photoAccessHelper.md#photocreationconfig12)&gt; | 是 | 保存图片/视频到媒体库的配置。 |
1269
1270**返回值:**
1271
1272| 类型                                    | 说明              |
1273| --------------------------------------- | ----------------- |
1274| Promise&lt;Array&lt;string&gt;&gt; | Promise对象,返回给接口调用方的的媒体库文件uri列表。Uri已对appId对应的应用授权,支持应用写入数据。 |
1275
1276**错误码:**
1277
1278接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1279
1280| 错误码ID | 错误信息 |
1281| -------- | ---------------------------------------- |
1282| 201 |  Permission denied.         |
1283| 202 |  Called by non-system application.         |
1284| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. |
1285| 14000011       | Internal system error.         |
1286
1287**示例:**
1288
1289```ts
1290async function example() {
1291  console.info('createAssetsForAppDemo.');
1292
1293  try {
1294    let bundleName: string = 'testBundleName';
1295    let appName: string = 'testAppName';
1296    let appId: string = 'testAppId';
1297    let photoCreationConfigs: Array<photoAccessHelper.PhotoCreationConfig> = [
1298      {
1299        title: 'test',
1300        fileNameExtension: 'jpg',
1301        photoType: photoAccessHelper.PhotoType.IMAGE,
1302        subtype: photoAccessHelper.PhotoSubtype.DEFAULT,
1303      }
1304    ];
1305    let desFileUris: Array<string> = await phAccessHelper.createAssetsForApp(bundleName, appName, appId, photoCreationConfigs);
1306    console.info('createAssetsForApp success, data is ' + desFileUris);
1307  } catch (err) {
1308    console.error(`createAssetsForApp failed with error: ${err.code}, ${err.message}`);
1309  }
1310}
1311```
1312
1313### grantPhotoUriPermission<sup>12+</sup>
1314
1315grantPhotoUriPermission(appid: string, uri: string, photoPermissionType: PhotoPermissionType, hideSensitiveType: HideSensitiveType): Promise&lt;number&gt;
1316
1317给应用授予uri的访问权限,使用Promise方式返回结果。
1318
1319**系统接口**:此接口为系统接口。
1320
1321**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1322
1323**需要权限:** ohos.permission.WRITE_IMAGEVIDEO
1324
1325**参数:**
1326
1327| 参数名   | 类型                                                                   | 必填 | 说明                      |
1328| -------- |----------------------------------------------------------------------| ---- | ------------------------- |
1329| appid | string | 是 | 应用标识,将访问权限授予给appid标识的应用。 |
1330| uri | string | 是 | 媒体资源的uri,uri表示的资源的访问权限将授予给应用。|
1331| photoPermissionType | [PhotoPermissionType](#photopermissiontype12) | 是 | 权限类型,将photoPermissionType表示的权限授予给应用。权限的覆盖规则参考枚举类。|
1332| hideSensitiveType | [HideSensitiveType](#hidesensitivetype12) | 是 | 脱敏类型,预留参数,目前可传枚举类中任一值。|
1333
1334**返回值:**
1335
1336| 类型                                    | 说明              |
1337| --------------------------------------- | ----------------- |
1338| Promise&lt;number&gt; | Promise对象,0:授权成功。 1:已有权限。-1:授权失败。|
1339
1340**错误码:**
1341
1342接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1343
1344| 错误码ID | 错误信息 |
1345| -------- | ---------------------------------------- |
1346| 201 |  Permission denied.         |
1347| 202 |  Called by non-system application.         |
1348| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. |
1349| 14000011       | Internal system error.         |
1350
1351**示例:**
1352
1353```ts
1354async function example() {
1355  console.info('grantPhotoUriPermissionDemo');
1356
1357  try {
1358    let result = await phAccessHelper.grantPhotoUriPermission('com.example.myapplication01',
1359        'file://media/Photo/1/IMG_datetime_0001/displayName.jpg',
1360        photoAccessHelper.PhotoPermissionType.TEMPORARY_READ_IMAGEVIDEO,
1361        photoAccessHelper.HideSensitiveType.HIDE_LOCATION_AND_SHOTING_PARM);
1362
1363    console.info('grantPhotoUriPermission success, result=' + result);
1364  } catch (err) {
1365    console.error('grantPhotoUriPermission failed, error=' + err);
1366  }
1367}
1368```
1369
1370### grantPhotoUrisPermission<sup>12+</sup>
1371
1372grantPhotoUrisPermission(appid: string, uriList: Array&lt;string&gt;, photoPermissionType: PhotoPermissionType, hideSensitiveType: HideSensitiveType): Promise&lt;number&gt;
1373
1374给应用授予uri列表的访问权限,使用Promise方式返回结果。
1375
1376**系统接口**:此接口为系统接口。
1377
1378**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1379
1380**需要权限:** ohos.permission.WRITE_IMAGEVIDEO
1381
1382**参数:**
1383
1384| 参数名   | 类型                                                                   | 必填 | 说明                      |
1385| -------- |----------------------------------------------------------------------| ---- | ------------------------- |
1386| appid | string | 是 | 应用标识,将访问权限授予给appid标识的应用。 |
1387| uriList | Array&lt;string&gt; | 是 | 媒体资源的uri列表,uri列表中的资源的访问权限将授予给应用。uri列表最多容纳 1000 条uri。|
1388| photoPermissionType | [PhotoPermissionType](#photopermissiontype12) | 是 | 权限类型,将photoPermissionType表示的权限授予给应用。权限的覆盖规则参考枚举类。|
1389| hideSensitiveType | [HideSensitiveType](#hidesensitivetype12) | 是 | 脱敏类型,预留参数,目前可传枚举类中任一值。|
1390
1391**返回值:**
1392
1393| 类型                                    | 说明              |
1394| --------------------------------------- | ----------------- |
1395| Promise&lt;number&gt; | Promise对象,0: 授权成功。 -1:授权失败。|
1396
1397**错误码:**
1398
1399接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1400
1401| 错误码ID | 错误信息 |
1402| -------- | ---------------------------------------- |
1403| 201 |  Permission denied.         |
1404| 202 |  Called by non-system application.         |
1405| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. |
1406| 14000011       | Internal system error.         |
1407
1408**示例:**
1409
1410```ts
1411async function example() {
1412  console.info('grantPhotoUrisPermissionDemo');
1413
1414  try {
1415    // 媒体资源的uri列表
1416    let uris: Array<string> = [
1417      'file://media/Photo/11/IMG_datetime_0001/displayName1.jpg',
1418      'file://media/Photo/22/IMG_datetime_0002/displayName2.jpg'];
1419    let result = await phAccessHelper.grantPhotoUrisPermission('com.example.myapplication01', uris,
1420        photoAccessHelper.PhotoPermissionType.TEMPORARY_READ_IMAGEVIDEO,
1421        photoAccessHelper.HideSensitiveType.HIDE_LOCATION_AND_SHOTING_PARM);
1422
1423    console.info('grantPhotoUrisPermission success, result=' + result);
1424  } catch (err) {
1425    console.error('grantPhotoUrisPermission failed, error=' + err);
1426  }
1427}
1428```
1429
1430### cancelPhotoUriPermission<sup>12+</sup>
1431
1432cancelPhotoUriPermission(appid: string, uri: string, photoPermissionType: PhotoPermissionType): Promise&lt;number&gt;
1433
1434取消应用对uri的访问权限,使用Promise方式返回结果。
1435
1436**系统接口**:此接口为系统接口。
1437
1438**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1439
1440**需要权限:** ohos.permission.WRITE_IMAGEVIDEO
1441
1442**参数:**
1443
1444| 参数名   | 类型                                                                   | 必填 | 说明                      |
1445| -------- |----------------------------------------------------------------------| ---- | ------------------------- |
1446| appid | string | 是 | 应用标识,将取消appid标识应用对媒体资源的访问权限。 |
1447| uri | string | 是 | 媒体资源的uri,取消应用对uri表示的资源的访问权限。|
1448| photoPermissionType | [PhotoPermissionType](#photopermissiontype12) | 是 | 权限类型,取消应用对媒体资源的访问权限为photoPermissionType。|
1449
1450**返回值:**
1451
1452| 类型                                    | 说明              |
1453| --------------------------------------- | ----------------- |
1454| Promise&lt;number&gt; | Promise对象,0:取消成功。-1:取消失败。|
1455
1456**错误码:**
1457
1458接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1459
1460| 错误码ID | 错误信息 |
1461| -------- | ---------------------------------------- |
1462| 201 |  Permission denied.         |
1463| 202 |  Called by non-system application.         |
1464| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. |
1465| 14000011       | Internal system error.         |
1466
1467**示例:**
1468
1469```ts
1470async function example() {
1471  console.info('cancelPhotoUriPermissionDemo');
1472
1473  try {
1474    let result = await phAccessHelper.cancelPhotoUriPermission('com.example.myapplication01',
1475        'file://media/Photo/11/IMG_datetime_0001/displayName.jpg',
1476        photoAccessHelper.PhotoPermissionType.TEMPORARY_READ_IMAGEVIDEO);
1477
1478    console.info('cancelPhotoUriPermission success, result=' + result);
1479  } catch (err) {
1480    console.error('cancelPhotoUriPermission failed, error=' + err);
1481  }
1482}
1483```
1484
1485### createAssetsForAppWithMode<sup>12+</sup>
1486
1487createAssetsForAppWithMode(boundleName: string, appName: string, appId: string, tokenId: number, authorizationMode: AuthorizationMode, photoCreationConfigs:Array\<PhotoCreationConfig>): Promise\<Array\<string>>
1488
1489提供给应用保存短时授权,使用Promise方式返回结果。
1490
1491**系统接口**:此接口为系统接口。
1492
1493**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1494
1495**需要权限:** ohos.permission.WRITE_IMAGEVIDEO
1496
1497**参数:**
1498
1499| 参数名   | 类型                                                                   | 必填 | 说明                      |
1500| -------- |----------------------------------------------------------------------| ---- | ------------------------- |
1501| boundleName| string | 是 | 需要保存图片/视频文件的应用boundleName。 |
1502| appName| string | 是 | 需要保存图片/视频文件的应用appName。|
1503| appId| string | 是 | 需要保存图片/视频文件的应用app id。 |
1504| tokenId| number| 是 | 需要短时授权应用的唯一标识。 |
1505| authorizationMode| [AuthorizationMode](#authorizationmode12)| 是 | 授权模式。授予应用短期内再次保存无需重复弹框确认。 |
1506| PhotoCreationConfig| Array\<[PhotoCreationConfig](js-apis-photoAccessHelper.md#photocreationconfig12)> | 是 | 保存图片/视频到媒体库的配置。|
1507
1508**返回值:**
1509
1510| 类型                                    | 说明              |
1511| --------------------------------------- | ----------------- |
1512| Promise\<Array\<string>> | Promise对象,返回给接口调用方的媒体库文件uri列表。Uri已对appId对应的应用授权,支持应用写入数据。|
1513
1514**错误码:**
1515
1516接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1517
1518| 错误码ID | 错误信息 |
1519| -------- | ---------------------------------------- |
1520| 201 |  Permission denied.         |
1521| 202 |  Called by non-system application.         |
1522| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. |
1523| 14000011       | Internal system error.         |
1524
1525**示例:**
1526
1527```ts
1528async function example() {
1529  console.info('createAssetsForAppWithModeDemo.');
1530
1531  try {
1532    let photoCreationConfigs: Array<photoAccessHelper.PhotoCreationConfig> = [
1533      {
1534        title: '123456',
1535        fileNameExtension: 'jpg',
1536        photoType: photoAccessHelper.PhotoType.IMAGE,
1537        subtype: photoAccessHelper.PhotoSubtype.DEFAULT,
1538      }
1539    ];
1540    let bundleName: string = 'testBundleName';
1541    let appName: string = 'testAppName';
1542    let appId: string = 'testAppId';
1543    let tokenId: number = 537197950;
1544    let authorizationMode: photoAccessHelper.AuthorizationMode = photoAccessHelper.AuthorizationMode.SHORT_TIME_AUTHORIZATION;
1545    let result: Array<string> = await phAccessHelper.createAssetsForAppWithMode(bundleName, appName, appId, tokenId, authorizationMode, photoCreationConfigs);
1546    console.info(`result: ${JSON.stringify(result)}`);
1547    console.info('Photo createAssetsForAppWithMode success.');
1548  } catch (err) {
1549    console.error(`createAssetsForAppWithMode failed with error: ${err.code}, ${err.message}`);
1550  }
1551}
1552```
1553
1554## PhotoAsset
1555
1556提供封装文件属性的方法。
1557
1558### open<sup>(deprecated)</sup>
1559
1560open(mode: string, callback: AsyncCallback&lt;number&gt;): void
1561
1562打开当前文件,使用callback方式返回异步结果。
1563
1564> **说明:**
1565>
1566> 从API version 10开始支持,从API version 11开始废弃。出于安全考量,不再提供获取正式媒体文件句柄的接口。
1567
1568**注意**:当前此(写)操作是互斥的操作,返回的文件描述符在使用完毕后需要调用close进行释放。
1569
1570**系统接口**:此接口为系统接口。
1571
1572**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.WRITE_IMAGEVIDEO
1573
1574**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1575
1576**参数:**
1577
1578| 参数名      | 类型                          | 必填   | 说明                                  |
1579| -------- | --------------------------- | ---- | ----------------------------------- |
1580| mode     | string                      | 是    | 打开文件方式,分别为:'r'(只读), 'w'(只写), 'rw'(读写)。 |
1581| callback | AsyncCallback&lt;number&gt; | 是    | callback返回文件描述符。                            |
1582
1583**错误码:**
1584
1585接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1586
1587| 错误码ID | 错误信息 |
1588| -------- | ---------------------------------------- |
1589| 202     |  Called by non-system application.         |
1590| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1591| 13900012     | Permission denied.         |
1592| 13900020     | Invalid argument.         |
1593| 14000011       | System inner fail.         |
1594
1595**示例:**
1596
1597```ts
1598async function example() {
1599  console.info('Open demo');
1600  let testFileName: string = 'testFile' + Date.now() + '.jpg';
1601  let photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName);
1602  photoAsset.open('rw', (err, fd) => {
1603    if (fd !== undefined) {
1604      console.info('File fd' + fd);
1605      photoAsset.close(fd);
1606    } else {
1607      console.error(`Open file err: ${err.code}, ${err.message}`);
1608    }
1609  });
1610}
1611```
1612
1613### open<sup>(deprecated)</sup>
1614
1615open(mode: string): Promise&lt;number&gt;
1616
1617打开当前文件,使用promise方式返回异步结果。
1618
1619> **说明:**
1620>
1621> 从API version 10开始支持,从API version 11开始废弃。出于安全考量,不再提供获取正式媒体文件句柄的接口。
1622
1623**注意**:当前此(写)操作是互斥的操作,返回的文件描述符在使用完毕后需要调用close进行释放。
1624
1625**系统接口**:此接口为系统接口。
1626
1627**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.WRITE_IMAGEVIDEO
1628
1629**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1630
1631**参数:**
1632
1633| 参数名  | 类型     | 必填   | 说明                                  |
1634| ---- | ------ | ---- | ----------------------------------- |
1635| mode | string | 是    | 打开文件方式,分别为:'r'(只读), 'w'(只写), 'rw'(读写)。 |
1636
1637**返回值:**
1638
1639| 类型                    | 说明            |
1640| --------------------- | ------------- |
1641| Promise&lt;number&gt; | Promise对象,返回文件描述符。 |
1642
1643**错误码:**
1644
1645接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1646
1647| 错误码ID | 错误信息 |
1648| -------- | ---------------------------------------- |
1649| 202     |  Called by non-system application.         |
1650| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1651| 13900012     | Permission denied.         |
1652| 13900020     | Invalid argument.         |
1653| 14000011       | System inner fail.         |
1654
1655**示例:**
1656
1657```ts
1658async function example() {
1659  console.info('Open demo');
1660  try {
1661    let testFileName: string = 'testFile' + Date.now() + '.jpg';
1662    let photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName);
1663    let fd: number = await photoAsset.open('rw');
1664    if (fd !== undefined) {
1665      console.info('File fd' + fd);
1666      photoAsset.close(fd);
1667    } else {
1668      console.error('Open file fail');
1669    }
1670  } catch (err) {
1671    console.error(`Open demo err: ${err.code}, ${err.message}`);
1672  }
1673}
1674```
1675
1676### setFavorite<sup>(deprecated)</sup>
1677
1678setFavorite(favoriteState: boolean, callback: AsyncCallback&lt;void&gt;): void
1679
1680将文件设置为收藏文件,使用callback方式返回异步结果。
1681
1682> **说明:**
1683>
1684> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setFavorite](#setfavorite11)替代。
1685
1686**系统接口**:此接口为系统接口。
1687
1688**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1689
1690**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1691
1692**参数:**
1693
1694| 参数名        | 类型                        | 必填   | 说明                                 |
1695| ---------- | ------------------------- | ---- | ---------------------------------- |
1696| favoriteState | boolean                   | 是    | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏。 |
1697| callback   | AsyncCallback&lt;void&gt; | 是    | callback返回void。                              |
1698
1699**错误码:**
1700
1701接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1702
1703| 错误码ID | 错误信息 |
1704| -------- | ---------------------------------------- |
1705| 202        |  Called by non-system application.         |
1706| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1707| 13900012     | Permission denied.         |
1708| 13900020     | Invalid argument.         |
1709| 14000011       | System inner fail.         |
1710
1711**示例:**
1712
1713```ts
1714import { dataSharePredicates } from '@kit.ArkData';
1715
1716async function example() {
1717  console.info('setFavoriteDemo');
1718  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
1719  let fetchOption: photoAccessHelper.FetchOptions = {
1720    fetchColumns: [],
1721    predicates: predicates
1722  };
1723  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
1724  let asset = await fetchResult.getFirstObject();
1725  asset.setFavorite(true, (err) => {
1726    if (err === undefined) {
1727      console.info('favorite successfully');
1728    } else {
1729      console.error(`favorite failed with error: ${err.code}, ${err.message}`);
1730    }
1731  });
1732}
1733```
1734
1735### setFavorite<sup>(deprecated)</sup>
1736
1737setFavorite(favoriteState: boolean): Promise&lt;void&gt;
1738
1739将文件设置为收藏文件,使用promise方式返回异步结果。
1740
1741> **说明:**
1742>
1743> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setFavorite](#setfavorite11)替代。
1744
1745**系统接口**:此接口为系统接口。
1746
1747**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1748
1749**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1750
1751**参数:**
1752
1753| 参数名        | 类型      | 必填   | 说明                                 |
1754| ---------- | ------- | ---- | ---------------------------------- |
1755| favoriteState | boolean | 是    | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏。 |
1756
1757**返回值:**
1758
1759| 类型                  | 说明         |
1760| ------------------- | ---------- |
1761| Promise&lt;void&gt; | Promise对象,返回void。 |
1762
1763**错误码:**
1764
1765接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1766
1767| 错误码ID | 错误信息 |
1768| -------- | ---------------------------------------- |
1769| 202        |  Called by non-system application.         |
1770| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1771| 13900012     | Permission denied.         |
1772| 13900020     | Invalid argument.         |
1773| 14000011       | System inner fail.         |
1774
1775**示例:**
1776
1777```ts
1778import { dataSharePredicates } from '@kit.ArkData';
1779import { BusinessError } from '@kit.BasicServicesKit';
1780
1781async function example() {
1782  console.info('setFavoriteDemo');
1783  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
1784  let fetchOption: photoAccessHelper.FetchOptions = {
1785    fetchColumns: [],
1786    predicates: predicates
1787  };
1788  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
1789  let asset = await fetchResult.getFirstObject();
1790  asset.setFavorite(true).then(() => {
1791    console.info('setFavorite successfully');
1792  }).catch((err: BusinessError) => {
1793    console.error(`setFavorite failed with error: ${err.code}, ${err.message}`);
1794  });
1795}
1796```
1797
1798### setHidden<sup>(deprecated)</sup>
1799
1800setHidden(hiddenState: boolean, callback: AsyncCallback&lt;void&gt;): void
1801
1802将文件设置为隐私文件,使用callback方式返回异步结果。
1803
1804隐私文件存在隐私相册中,用户通过隐私相册去获取隐私文件后可以通过设置hiddenState为false来从隐私相册中移除。
1805
1806> **说明:**
1807>
1808> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setHidden](#sethidden11)替代。
1809
1810**系统接口**:此接口为系统接口。
1811
1812**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1813
1814**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1815
1816**参数:**
1817
1818| 参数名        | 类型                        | 必填   | 说明                                 |
1819| ---------- | ------------------------- | ---- | ---------------------------------- |
1820| hiddenState | boolean                   | 是    | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 |
1821| callback   | AsyncCallback&lt;void&gt; | 是    | callback返回void。                              |
1822
1823**错误码:**
1824
1825接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1826
1827| 错误码ID | 错误信息 |
1828| -------- | ---------------------------------------- |
1829| 202        |  Called by non-system application.         |
1830| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1831| 13900012     | Permission denied.         |
1832| 13900020     | Invalid argument.         |
1833| 14000011       | System inner fail.         |
1834
1835**示例:**
1836
1837```ts
1838import { dataSharePredicates } from '@kit.ArkData';
1839
1840async function example() {
1841  console.info('setHiddenDemo');
1842  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
1843  let fetchOption: photoAccessHelper.FetchOptions = {
1844    fetchColumns: [],
1845    predicates: predicates
1846  };
1847  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
1848  let asset = await fetchResult.getFirstObject();
1849  asset.setHidden(true, (err) => {
1850    if (err === undefined) {
1851      console.info('setHidden successfully');
1852    } else {
1853      console.error(`setHidden failed with error: ${err.code}, ${err.message}`);
1854    }
1855  });
1856}
1857```
1858
1859### setHidden<sup>(deprecated)</sup>
1860
1861setHidden(hiddenState: boolean): Promise&lt;void&gt;
1862
1863将文件设置为隐私文件,使用promise方式返回异步结果。
1864
1865隐私文件存在隐私相册中,用户通过隐私相册去获取隐私文件后可以通过设置hiddenState为false来从隐私相册中移除。
1866
1867> **说明:**
1868>
1869> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setHidden](#sethidden11)替代。
1870
1871**系统接口**:此接口为系统接口。
1872
1873**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1874
1875**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1876
1877**参数:**
1878
1879| 参数名        | 类型      | 必填   | 说明                                 |
1880| ---------- | ------- | ---- | ---------------------------------- |
1881| hiddenState | boolean | 是    | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 |
1882
1883**返回值:**
1884
1885| 类型                  | 说明         |
1886| ------------------- | ---------- |
1887| Promise&lt;void&gt; | Promise对象,返回void。 |
1888
1889**错误码:**
1890
1891接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1892
1893| 错误码ID | 错误信息 |
1894| -------- | ---------------------------------------- |
1895| 202        |  Called by non-system application.         |
1896| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1897| 13900012     | Permission denied.         |
1898| 13900020     | Invalid argument.         |
1899| 14000011       | System inner fail.         |
1900
1901**示例:**
1902
1903```ts
1904import { dataSharePredicates } from '@kit.ArkData';
1905import { BusinessError } from '@kit.BasicServicesKit';
1906
1907async function example() {
1908  // 示例代码为将文件从隐藏相册中恢复,需要先在隐藏相册预置资源
1909  console.info('setHiddenDemo');
1910  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
1911  let fetchOption: photoAccessHelper.FetchOptions = {
1912    fetchColumns: [],
1913    predicates: predicates
1914  };
1915  let albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.HIDDEN);
1916  let album = await albumList.getFirstObject();
1917  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
1918  let asset = await fetchResult.getFirstObject();
1919  asset.setHidden(false).then(() => {
1920    console.info('setHidden successfully');
1921  }).catch((err: BusinessError) => {
1922    console.error(`setHidden failed with error: ${err.code}, ${err.message}`);
1923  });
1924}
1925```
1926
1927### getExif
1928
1929getExif(): Promise&lt;string&gt;
1930
1931返回jpg格式图片Exif标签组成的json格式的字符串,该方法使用Promise方式返回结果。
1932
1933此接口中获取的Exif标签信息是由[image](../apis-image-kit/js-apis-image.md)模块提供。Exif标签详细信息请参考[image.PropertyKey](../apis-image-kit/js-apis-image.md#propertykey7)。
1934
1935**注意**:此接口返回的是Exif标签组成的json格式的字符串,完整Exif信息由all_exif与[PhotoKeys.USER_COMMENT](#photokeys)组成,fetchColumns需要传入这两个字段。
1936
1937**系统接口**:此接口为系统接口。
1938
1939**需要权限**:ohos.permission.READ_IMAGEVIDEO
1940
1941**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1942
1943**返回值:**
1944
1945| 类型                                    | 说明              |
1946| --------------------------------------- | ----------------- |
1947| Promise&lt;string&gt; | 返回Exif标签组成的json格式的字符串。 |
1948
1949**错误码:**
1950
1951接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1952
1953| 错误码ID | 错误信息 |
1954| -------- | ---------------------------------------- |
1955| 202        |  Called by non-system application.         |
1956| 401    | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
1957| 13900012     | Permission denied.         |
1958| 13900020     | Invalid argument.         |
1959| 14000011       | System inner fail.         |
1960
1961**示例:**
1962
1963```ts
1964import { dataSharePredicates } from '@kit.ArkData';
1965
1966async function example() {
1967  try {
1968    console.info('getExifDemo');
1969    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
1970    let fetchOptions: photoAccessHelper.FetchOptions = {
1971      fetchColumns: [ 'all_exif',  photoAccessHelper.PhotoKeys.USER_COMMENT],
1972      predicates: predicates
1973    };
1974    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
1975    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
1976    let exifMessage = await photoAsset.getExif();
1977    let userCommentKey = 'UserComment';
1978    let userComment = JSON.stringify(JSON.parse(exifMessage), [userCommentKey]);
1979    console.info('getExifDemo userComment: ' + JSON.stringify(userComment));
1980    fetchResult.close();
1981  } catch (err) {
1982    console.error(`getExifDemoCallback failed with error: ${err.code}, ${err.message}`);
1983  }
1984}
1985```
1986
1987### getExif
1988
1989getExif(callback: AsyncCallback&lt;string&gt;): void
1990
1991返回jpg格式图片Exif标签组成的json格式的字符串,使用callback方式返回异步结果。
1992
1993此接口中获取的Exif标签信息是由[image](../apis-image-kit/js-apis-image.md)模块提供。Exif标签详细信息请参考[image.PropertyKey](../apis-image-kit/js-apis-image.md#propertykey7)。
1994
1995**注意**:此接口返回的是Exif标签组成的json格式的字符串,完整Exif信息由all_exif与[PhotoKeys.USER_COMMENT](#photokeys)组成,fetchColumns需要传入这两个字段。
1996
1997**系统接口**:此接口为系统接口。
1998
1999**需要权限**:ohos.permission.READ_IMAGEVIDEO
2000
2001**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2002
2003**参数:**
2004
2005| 参数名   | 类型                      | 必填 | 说明       |
2006| -------- | ------------------------- | ---- | ---------- |
2007| callback | AsyncCallback&lt;string&gt; | 是   | 返回Exif字段组成的json格式的字符串。 |
2008
2009**错误码:**
2010
2011接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2012
2013| 错误码ID | 错误信息 |
2014| -------- | ---------------------------------------- |
2015| 202        |  Called by non-system application.         |
2016| 401    | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
2017| 13900012     | Permission denied.         |
2018| 13900020     | Invalid argument.         |
2019| 14000011       | System inner fail.         |
2020
2021**示例:**
2022
2023```ts
2024import { dataSharePredicates } from '@kit.ArkData';
2025
2026async function example() {
2027  try {
2028    console.info('getExifDemo');
2029    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2030    predicates.isNotNull('all_exif')
2031    let fetchOptions: photoAccessHelper.FetchOptions = {
2032      fetchColumns: ['all_exif', photoAccessHelper.PhotoKeys.USER_COMMENT],
2033      predicates: predicates
2034    };
2035    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2036    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2037    console.info('getExifDemo photoAsset displayName: ' + JSON.stringify(photoAsset.displayName));
2038    let userCommentKey = 'UserComment';
2039    photoAsset.getExif((err, exifMessage) => {
2040      if (exifMessage !== undefined) {
2041        let userComment = JSON.stringify(JSON.parse(exifMessage), [userCommentKey]);
2042        console.info('getExifDemo userComment: ' + JSON.stringify(userComment));
2043      } else {
2044        console.error(`getExif failed, error: ${err.code}, ${err.message}`);
2045      }
2046    });
2047    fetchResult.close();
2048  } catch (err) {
2049    console.error(`getExifDemoCallback failed with error: ${err.code}, ${err.message}`);
2050  }
2051}
2052```
2053
2054### setUserComment<sup>(deprecated)</sup>
2055
2056setUserComment(userComment: string): Promise&lt;void&gt;
2057
2058修改图片或者视频的备注信息,该方法使用Promise来返回结果。
2059
2060> **说明:**
2061>
2062> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setUserComment](#setusercomment11)替代。
2063
2064**注意**:此接口只可修改图片或者视频的备注信息。
2065
2066**系统接口**:此接口为系统接口。
2067
2068**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
2069
2070**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2071
2072**参数:**
2073
2074| 参数名   | 类型                      | 必填 | 说明       |
2075| -------- | ------------------------- | ---- | ---------- |
2076| userComment | string | 是   | 待修改的图片或视频的备注信息,备注信息最长为420字符。 |
2077
2078**返回值:**
2079
2080| 类型                                    | 说明              |
2081| --------------------------------------- | ----------------- |
2082|Promise&lt;void&gt; | Promise对象,返回void。 |
2083
2084**错误码:**
2085
2086接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2087
2088| 错误码ID | 错误信息 |
2089| -------- | ---------------------------------------- |
2090| 202        |  Called by non-system application.         |
2091| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
2092| 13900012     | Permission denied.         |
2093| 13900020     | Invalid argument.         |
2094| 14000011       | System inner fail.         |
2095
2096**示例:**
2097
2098```ts
2099import { dataSharePredicates } from '@kit.ArkData';
2100
2101async function example() {
2102  try {
2103    console.info('setUserCommentDemo')
2104    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2105    let fetchOptions: photoAccessHelper.FetchOptions = {
2106      fetchColumns: [],
2107      predicates: predicates
2108    };
2109    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2110    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2111    let userComment = 'test_set_user_comment';
2112    await photoAsset.setUserComment(userComment);
2113  } catch (err) {
2114    console.error(`setUserCommentDemoPromise failed with error: ${err.code}, ${err.message}`);
2115  }
2116}
2117```
2118
2119### setUserComment<sup>(deprecated)</sup>
2120
2121setUserComment(userComment: string, callback: AsyncCallback&lt;void&gt;): void
2122
2123修改图片或者视频的备注信息,该方法使用callback形式来返回结果。
2124
2125> **说明:**
2126>
2127> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setUserComment](#setusercomment11)替代。
2128
2129**注意**:此接口只可修改图片或者视频的备注信息。
2130
2131**系统接口**:此接口为系统接口。
2132
2133**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
2134
2135**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2136
2137**参数:**
2138
2139| 参数名   | 类型                      | 必填 | 说明       |
2140| -------- | ------------------------- | ---- | ---------- |
2141| userComment | string | 是   | 待修改的图片或视频的备注信息,备注信息最长为420字符。 |
2142| callback | AsyncCallback&lt;void&gt; | 是   | callback返回void。 |
2143
2144**错误码:**
2145
2146接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2147
2148| 错误码ID | 错误信息 |
2149| -------- | ---------------------------------------- |
2150| 202        |  Called by non-system application.         |
2151| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
2152| 13900012     | Permission denied.         |
2153| 13900020     | Invalid argument.         |
2154| 14000011       | System inner fail.         |
2155
2156**示例:**
2157
2158```ts
2159import { dataSharePredicates } from '@kit.ArkData';
2160
2161async function example() {
2162  try {
2163    console.info('setUserCommentDemo')
2164    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2165    let fetchOptions: photoAccessHelper.FetchOptions = {
2166      fetchColumns: [],
2167      predicates: predicates
2168    };
2169    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2170    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2171    let userComment = 'test_set_user_comment';
2172    photoAsset.setUserComment(userComment, (err) => {
2173      if (err === undefined) {
2174        console.info('setUserComment successfully');
2175      } else {
2176        console.error(`setUserComment failed with error: ${err.code}, ${err.message}`);
2177      }
2178    });
2179  } catch (err) {
2180    console.error(`setUserCommentDemoCallback failed with error: ${err.code}, ${err.message}`);
2181  }
2182}
2183```
2184
2185### setPending<sup>11+</sup>
2186
2187setPending(pendingState: boolean, callback: AsyncCallback&lt;void&gt;): void
2188
2189为图片或视频资源设置pending状态,该方法使用callback形式来返回结果。
2190
2191将文件通过`setPending(true)`设置为pending状态后,只能通过`setPending(false)`解除pending状态。可以通过`photoAsset.get(photoAccessHelper.PhotoKeys.PENDING)`的方式获取是否为pending状态,pending状态下返回true,否则返回false。
2192
2193**注意**:setPending只能在文件的创建期使用,在文件的首次创建流程的close之后,无法通过setPending(true)将文件设置为pending状态。
2194
2195**系统接口**:此接口为系统接口。
2196
2197**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
2198
2199**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2200
2201**参数:**
2202
2203| 参数名        | 类型      | 必填   | 说明                                 |
2204| ---------- | ------- | ---- | ---------------------------------- |
2205| pendingState | boolean | 是    | 设置的pending状态,true为设置pending状态,false为解除pending状态 |
2206| callback | AsyncCallback&lt;void&gt; | 是    | Callback对象,返回void |
2207
2208**错误码:**
2209
2210接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2211
2212| 错误码ID | 错误信息 |
2213| -------- | ---------------------------------------- |
2214| 201   | Permission denied.        |
2215| 202   | Called by non-system application.         |
2216| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
2217| 14000011   | System inner fail.        |
2218
2219**示例:**
2220
2221```ts
2222async function example() {
2223  try {
2224    console.info('setPendingCallbackDemo');
2225    let testFileName: string = 'testFile' + Date.now() + '.jpg';
2226    let photoAsset = await phAccessHelper.createAsset(testFileName);
2227    let fd = await photoAsset.open('rw');
2228    photoAsset.setPending(true, async (err) => {
2229      if (err !== undefined) {
2230        console.error(`setPending(true) failed with error: ${err.code}, ${err.message}`);
2231        return;
2232      }
2233      // write photo buffer in fd
2234      photoAsset.setPending(false, async (err) => {
2235        if (err !== undefined) {
2236          console.error(`setPending(false) failed with error: ${err.code}, ${err.message}`);
2237          return;
2238        }
2239        await photoAsset.close(fd);
2240      });
2241    });
2242  } catch (err) {
2243    console.error(`setPendingCallbackDemo failed with error: ${err.code}, ${err.message}`);
2244  }
2245}
2246```
2247
2248### setPending<sup>11+</sup>
2249
2250setPending(pendingState: boolean): Promise&lt;void&gt;
2251
2252为图片或视频资源设置pending状态,该方法使用promise形式来返回结果。
2253
2254将文件通过`setPending(true)`设置为pending状态后,只能通过`setPending(false)`解除pending状态。可以通过`photoAsset.get(photoAccessHelper.PhotoKeys.PENDING)`的方式获取是否为pending状态,pending状态下返回true,否则返回false。
2255
2256**注意**:setPending只能在文件的创建期使用,在文件的首次创建流程的close之后,无法通过setPending(true)将文件设置为pending状态。
2257
2258**系统接口**:此接口为系统接口。
2259
2260**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
2261
2262**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2263
2264**参数:**
2265
2266| 参数名        | 类型      | 必填   | 说明                                 |
2267| ---------- | ------- | ---- | ---------------------------------- |
2268| pendingState | boolean | 是    | 设置的pending状态,true为设置pending状态,false为解除pending状态。 |
2269
2270**返回值:**
2271
2272| 类型                                    | 说明              |
2273| --------------------------------------- | ----------------- |
2274|Promise&lt;boolean&gt; | Promise对象,返回void。 |
2275
2276**错误码:**
2277
2278接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2279
2280| 错误码ID | 错误信息 |
2281| -------- | ---------------------------------------- |
2282| 201   | Permission denied.        |
2283| 202   | Called by non-system application.         |
2284| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
2285| 14000011   | System inner fail.        |
2286
2287**示例:**
2288
2289```ts
2290async function example() {
2291  try {
2292    console.info('setPendingPromiseDemo');
2293    let testFileName: string = 'testFile' + Date.now() + '.jpg';
2294    let photoAsset = await phAccessHelper.createAsset(testFileName);
2295    let fd = await photoAsset.open('rw');
2296    await photoAsset.setPending(true);
2297    // write photo buffer in fd
2298    photoAsset.setPending(false);
2299    await photoAsset.close(fd);
2300  } catch (err) {
2301    console.error(`setPendingPromiseDemo failed with error: ${err.code}, ${err.message}`);
2302  }
2303}
2304```
2305
2306### isEdited<sup>11+</sup>
2307
2308isEdited(callback: AsyncCallback&lt;boolean&gt;): void
2309
2310查询图片或视频资源是否被编辑过,该方法使用callback形式来返回结果。
2311
2312**系统接口**:此接口为系统接口。
2313
2314**需要权限**:ohos.permission.READ_IMAGEVIDEO
2315
2316**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2317
2318**参数:**
2319
2320| 参数名        | 类型      | 必填   | 说明                                 |
2321| ---------- | ------- | ---- | ---------------------------------- |
2322| callback | AsyncCallback&lt;boolean&gt; | 是    | Callback对象,返回图片或视频资源是否被编辑过 |
2323
2324**错误码:**
2325
2326接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2327
2328| 错误码ID | 错误信息 |
2329| -------- | ---------------------------------------- |
2330| 201   | Permission denied.        |
2331| 202   | Called by non-system application.         |
2332| 401    | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
2333| 14000011   | System inner fail.        |
2334
2335**示例:**
2336
2337```ts
2338import { dataSharePredicates } from '@kit.ArkData';
2339
2340async function example() {
2341  try {
2342    console.info('isEditedCallbackDemo')
2343    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2344    let fetchOptions: photoAccessHelper.FetchOptions = {
2345      fetchColumns: [],
2346      predicates: predicates
2347    };
2348    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2349    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2350    photoAsset.isEdited((err, isEdited) => {
2351      if (err === undefined) {
2352        if (isEdited === true) {
2353          console.info('Photo is edited');
2354        } else {
2355          console.info('Photo is not edited');
2356        }
2357      } else {
2358        console.error(`isEdited failed with error: ${err.code}, ${err.message}`);
2359      }
2360    });
2361  } catch (err) {
2362    console.error(`isEditedDemoCallback failed with error: ${err.code}, ${err.message}`);
2363  }
2364}
2365```
2366
2367### isEdited<sup>11+</sup>
2368
2369isEdited(): Promise&lt;boolean&gt;
2370
2371查询图片或视频资源是否被编辑过,该方法使用promise形式来返回结果。
2372
2373**系统接口**:此接口为系统接口。
2374
2375**需要权限**:ohos.permission.READ_IMAGEVIDEO
2376
2377**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2378
2379**返回值:**
2380
2381| 类型                                    | 说明              |
2382| --------------------------------------- | ----------------- |
2383|Promise&lt;boolean&gt; | Promise对象,返回图片或视频资源是否被编辑过。 |
2384
2385
2386**错误码:**
2387
2388接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2389
2390| 错误码ID | 错误信息 |
2391| -------- | ---------------------------------------- |
2392| 201   | Permission denied.        |
2393| 202   | Called by non-system application.         |
2394| 401    | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
2395| 14000011   | System inner fail.        |
2396
2397**示例:**
2398
2399```ts
2400import { dataSharePredicates } from '@kit.ArkData';
2401
2402async function example() {
2403  try {
2404    console.info('isEditedPromiseDemo')
2405    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2406    let fetchOptions: photoAccessHelper.FetchOptions = {
2407      fetchColumns: [],
2408      predicates: predicates
2409    };
2410    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2411    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2412    let isEdited = await photoAsset.isEdited();
2413    if (isEdited === true) {
2414      console.info('Photo is edited');
2415    } else {
2416      console.info('Photo is not edited');
2417    }
2418  } catch (err) {
2419    console.error(`isEditedDemoCallback failed with error: ${err.code}, ${err.message}`);
2420  }
2421}
2422```
2423
2424### requestEditData<sup>11+</sup>
2425
2426requestEditData(callback: AsyncCallback&lt;string&gt;): void
2427
2428获得图片或视频资源的编辑数据,该方法使用callback形式来返回结果。
2429
2430如果资源未编辑过,则返回一个空字符串。
2431
2432**系统接口**:此接口为系统接口。
2433
2434**需要权限**:ohos.permission.READ_IMAGEVIDEO
2435
2436**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2437
2438**参数:**
2439
2440| 参数名        | 类型      | 必填   | 说明                                 |
2441| ---------- | ------- | ---- | ---------------------------------- |
2442| callback | AsyncCallback&lt;string&gt; | 是    | Callback对象,返回图片或视频资源的编辑数据 |
2443
2444**错误码:**
2445
2446接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2447
2448| 错误码ID | 错误信息 |
2449| -------- | ---------------------------------------- |
2450| 201   | Permission denied.        |
2451| 202   | Called by non-system application.         |
2452| 401    | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
2453| 14000011   | System inner fail.        |
2454
2455**示例:**
2456
2457```ts
2458import { dataSharePredicates } from '@kit.ArkData';
2459
2460async function example() {
2461  try {
2462    console.info('requestEditDataCallbackDemo')
2463    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2464    let fetchOptions: photoAccessHelper.FetchOptions = {
2465      fetchColumns: [],
2466      predicates: predicates
2467    };
2468    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2469    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2470    photoAsset.requestEditData((err, editdata) => {
2471      if (err === undefined) {
2472        console.info('Editdata is ' + editdata);
2473      } else {
2474        console.error(`requestEditData failed with error: ${err.code}, ${err.message}`);
2475      }
2476    });
2477  } catch (err) {
2478    console.error(`requestEditDataCallbackDemo failed with error: ${err.code}, ${err.message}`);
2479  }
2480}
2481```
2482
2483### requestEditData<sup>11+</sup>
2484
2485requestEditData(): Promise&lt;string&gt;
2486
2487获得图片或视频资源的编辑数据,该方法使用promise形式来返回结果。
2488
2489如果资源未编辑过,则返回一个空字符串。
2490
2491**系统接口**:此接口为系统接口。
2492
2493**需要权限**:ohos.permission.READ_IMAGEVIDEO
2494
2495**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2496
2497**返回值:**
2498
2499| 类型                                    | 说明              |
2500| --------------------------------------- | ----------------- |
2501|Promise&lt;string&gt; | Promise对象,返回图片或视频资源的编辑数据。 |
2502
2503
2504**错误码:**
2505
2506接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2507
2508| 错误码ID | 错误信息 |
2509| -------- | ---------------------------------------- |
2510| 201   | Permission denied.        |
2511| 202   | Called by non-system application.         |
2512| 401    | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
2513| 14000011   | System inner fail.        |
2514
2515**示例:**
2516
2517```ts
2518import { dataSharePredicates } from '@kit.ArkData';
2519
2520async function example() {
2521  try {
2522    console.info('requestEditDataPromiseDemo')
2523    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2524    let fetchOptions: photoAccessHelper.FetchOptions = {
2525      fetchColumns: [],
2526      predicates: predicates
2527    };
2528    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2529    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2530    let editdata: string = await photoAsset.requestEditData();
2531    console.info('Editdata is ' + editdata);
2532  } catch (err) {
2533    console.error(`requestEditDataPromiseDemo failed with error: ${err.code}, ${err.message}`);
2534  }
2535}
2536```
2537
2538### getEditData<sup>11+</sup>
2539
2540getEditData(): Promise&lt;MediaAssetEditData&gt;
2541
2542获得资产编辑数据,该方法使用promise形式来返回结果。
2543
2544如果资源未编辑过,则返回的编辑数据的内容为空字符串。
2545
2546**系统接口**:此接口为系统接口。
2547
2548**需要权限**:ohos.permission.READ_IMAGEVIDEO
2549
2550**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2551
2552**返回值:**
2553
2554| 类型                                    | 说明              |
2555| --------------------------------------- | ----------------- |
2556|Promise&lt;[MediaAssetEditData](#mediaasseteditdata11)&gt; | Promise对象,返回资产编辑数据。 |
2557
2558**错误码:**
2559
2560接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2561
2562| 错误码ID | 错误信息 |
2563| -------- | ---------------------------------------- |
2564| 201   | Permission denied.        |
2565| 202   | Called by non-system application.         |
2566| 401    | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
2567| 14000011   | System inner fail.        |
2568
2569**示例:**
2570
2571```ts
2572import { dataSharePredicates } from '@kit.ArkData';
2573
2574async function example() {
2575  try {
2576    console.info('getEditDataDemo')
2577    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2578    let fetchOptions: photoAccessHelper.FetchOptions = {
2579      fetchColumns: [],
2580      predicates: predicates
2581    };
2582    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2583    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2584    let assetEditData: photoAccessHelper.MediaAssetEditData = await photoAsset.getEditData();
2585    let data: string = assetEditData.data;
2586    console.info('edit data is ' + data);
2587  } catch (err) {
2588    console.error(`getEditDataDemo failed with error: ${err.code}, ${err.message}`);
2589  }
2590}
2591```
2592
2593### requestSource<sup>11+</sup>
2594
2595requestSource(callback: AsyncCallback&lt;number&gt;): void
2596
2597打开源文件并返回fd,该方法使用callback形式来返回结果。
2598
2599**系统接口**:此接口为系统接口。
2600
2601**需要权限**:ohos.permission.READ_IMAGEVIDEO
2602
2603**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2604
2605**参数:**
2606
2607| 参数名        | 类型      | 必填   | 说明                                 |
2608| ---------- | ------- | ---- | ---------------------------------- |
2609| callback | AsyncCallback&lt;number&gt; | 是    | Callback对象,返回源文件fd。 |
2610
2611**错误码:**
2612
2613接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2614
2615| 错误码ID | 错误信息 |
2616| -------- | ---------------------------------------- |
2617| 201   | Permission denied.        |
2618| 202   | Called by non-system application.         |
2619| 401    | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
2620| 14000011   | System inner fail.        |
2621
2622**示例:**
2623
2624```ts
2625import { dataSharePredicates } from '@kit.ArkData';
2626
2627async function example() {
2628  try {
2629    console.info('requsetSourceCallbackDemo')
2630    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2631    let fetchOptions: photoAccessHelper.FetchOptions = {
2632      fetchColumns: [],
2633      predicates: predicates
2634    };
2635    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2636    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2637    photoAsset.requestSource((err, fd) => {
2638      if (err === undefined) {
2639        console.info('Source fd is ' + fd);
2640      } else {
2641        console.error(`requestSource failed with error: ${err.code}, ${err.message}`);
2642      }
2643    });
2644  } catch (err) {
2645    console.error(`requsetSourceCallbackDemo failed with error: ${err.code}, ${err.message}`);
2646  }
2647}
2648```
2649
2650### requestSource<sup>11+</sup>
2651
2652requestSource(): Promise&lt;number&gt;
2653
2654打开源文件并返回fd,该方法使用promise形式来返回结果。
2655
2656**系统接口**:此接口为系统接口。
2657
2658**需要权限**:ohos.permission.READ_IMAGEVIDEO
2659
2660**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2661
2662**返回值:**
2663
2664| 类型                                    | 说明              |
2665| --------------------------------------- | ----------------- |
2666|Promise&lt;number&gt; | Promise对象,返回源文件fd。 |
2667
2668**错误码:**
2669
2670接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2671
2672| 错误码ID | 错误信息 |
2673| -------- | ---------------------------------------- |
2674| 201   | Permission denied.        |
2675| 202   | Called by non-system application.         |
2676| 401    | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
2677| 14000011   | System inner fail.        |
2678
2679**示例:**
2680
2681```ts
2682import { dataSharePredicates } from '@kit.ArkData';
2683
2684async function example() {
2685  try {
2686    console.info('requsetSourcePromiseDemo')
2687    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2688    let fetchOptions: photoAccessHelper.FetchOptions = {
2689      fetchColumns: [],
2690      predicates: predicates
2691    };
2692    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2693    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2694    let fd = await photoAsset.requestSource();
2695    console.info('Source fd is ' + fd);
2696  } catch (err) {
2697    console.error(`requsetSourcePromiseDemo failed with error: ${err.code}, ${err.message}`);
2698  }
2699}
2700```
2701
2702### commitEditedAsset<sup>11+</sup>
2703
2704commitEditedAsset(editData: string, uri: string, callback: AsyncCallback&lt;void&gt;)
2705
2706提交编辑数据以及编辑后的图片或视频,该方法使用callback形式来返回结果。
2707
2708通过uri将编辑后的文件传递给媒体库,uri是编辑后的文件在应用沙箱下的FileUri,可参考[FileUri](../apis-core-file-kit/js-apis-file-fileuri.md)。
2709
2710**注意**:新的编辑数据提交后,将覆盖掉原来的编辑数据。
2711
2712**系统接口**:此接口为系统接口。
2713
2714**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
2715
2716**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2717
2718**参数:**
2719
2720| 参数名        | 类型      | 必填   | 说明                                 |
2721| ---------- | ------- | ---- | ---------------------------------- |
2722| editData | string | 是    | 提交的编辑数据。 |
2723| uri | string | 是    | 提交的编辑后的图片或视频,在应用沙箱下的uri。 |
2724| callback | AsyncCallback&lt;void&gt; | 是    | Callback对象,返回void。 |
2725
2726**错误码:**
2727
2728接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2729
2730| 错误码ID | 错误信息 |
2731| -------- | ---------------------------------------- |
2732| 201   | Permission denied.        |
2733| 202   | Called by non-system application.         |
2734| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
2735| 14000011   | System inner fail.        |
2736
2737**示例:**
2738
2739```ts
2740import { dataSharePredicates } from '@kit.ArkData';
2741
2742async function example() {
2743  try {
2744    console.info('commitEditedAssetCallbackDemo')
2745    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2746    let fetchOptions: photoAccessHelper.FetchOptions = {
2747      fetchColumns: [],
2748      predicates: predicates
2749    };
2750    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2751    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2752    let editData = '123456';
2753    let uri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg';
2754    photoAsset.commitEditedAsset(editData, uri, (err) => {
2755      if (err === undefined) {
2756        console.info('commitEditedAsset is successful');
2757      } else {
2758        console.error(`commitEditedAsset failed with error: ${err.code}, ${err.message}`);
2759      }
2760    });
2761  } catch (err) {
2762    console.error(`commitEditedAssetCallbackDemo failed with error: ${err.code}, ${err.message}`);
2763  }
2764}
2765```
2766
2767### commitEditedAsset<sup>11+</sup>
2768
2769commitEditedAsset(editData: string, uri: string): Promise&lt;void&gt;
2770
2771提交编辑数据以及编辑后的图片或视频,该方法使用promise形式来返回结果。
2772
2773通过uri将编辑后的文件传递给媒体库,uri是编辑后的文件在应用沙箱下的FileUri,可参考[FileUri](../apis-core-file-kit/js-apis-file-fileuri.md)。
2774
2775**注意**:新的编辑数据提交后,将覆盖掉原来的编辑数据。
2776
2777**系统接口**:此接口为系统接口。
2778
2779**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
2780
2781**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2782
2783**参数:**
2784
2785| 参数名        | 类型      | 必填   | 说明                                 |
2786| ---------- | ------- | ---- | ---------------------------------- |
2787| editData | string | 是    | 提交的编辑数据。 |
2788| uri | string | 是    | 提交的编辑后的图片或视频,在应用沙箱下的uri。 |
2789
2790**返回值:**
2791
2792| 类型                                    | 说明              |
2793| --------------------------------------- | ----------------- |
2794|Promise&lt;void&gt; | Promise对象,返回void。 |
2795
2796**错误码:**
2797
2798接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2799
2800| 错误码ID | 错误信息 |
2801| -------- | ---------------------------------------- |
2802| 201   | Permission denied.        |
2803| 202   | Called by non-system application.         |
2804| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
2805| 14000011   | System inner fail.        |
2806
2807**示例:**
2808
2809```ts
2810import { dataSharePredicates } from '@kit.ArkData';
2811
2812async function example() {
2813  try {
2814    console.info('commitEditedAssetPromiseDemo')
2815    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2816    let fetchOptions: photoAccessHelper.FetchOptions = {
2817      fetchColumns: [],
2818      predicates: predicates
2819    };
2820    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2821    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2822    let editData = '123456';
2823    let uri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg';
2824    await photoAsset.commitEditedAsset(editData, uri);
2825    console.info('commitEditedAsset is successful');
2826  } catch (err) {
2827    console.error(`commitEditedAssetPromiseDemo failed with error: ${err.code}, ${err.message}`);
2828  }
2829}
2830```
2831
2832### revertToOriginal<sup>11+</sup>
2833
2834revertToOriginal(callback: AsyncCallback&lt;void&gt;)
2835
2836回退到编辑前的状态,该方法使用callback形式来返回结果。
2837
2838**注意**:调用该接口后,编辑数据和编辑后的图片或视频资源都将被删除,无法恢复,请谨慎调用。
2839
2840**系统接口**:此接口为系统接口。
2841
2842**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
2843
2844**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2845
2846**参数:**
2847
2848| 参数名        | 类型      | 必填   | 说明                                 |
2849| ---------- | ------- | ---- | ---------------------------------- |
2850| callback | AsyncCallback&lt;void&gt; | 是    | Callback对象,返回void。 |
2851
2852**错误码:**
2853
2854接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2855
2856| 错误码ID | 错误信息 |
2857| -------- | ---------------------------------------- |
2858| 201   | Permission denied.        |
2859| 202   | Called by non-system application.         |
2860| 401    | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
2861| 14000011   | System inner fail.        |
2862
2863**示例:**
2864
2865```ts
2866import { dataSharePredicates } from '@kit.ArkData';
2867
2868async function example() {
2869  try {
2870    console.info('revertToOriginalCallbackDemo')
2871    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2872    let fetchOptions: photoAccessHelper.FetchOptions = {
2873      fetchColumns: [],
2874      predicates: predicates
2875    };
2876    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2877    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2878    photoAsset.revertToOriginal((err) => {
2879      if (err === undefined) {
2880        console.info('revertToOriginal is successful');
2881      } else {
2882        console.error(`revertToOriginal failed with error: ${err.code}, ${err.message}`);
2883      }
2884    });
2885  } catch (err) {
2886    console.error(`revertToOriginalCallbackDemo failed with error: ${err.code}, ${err.message}`);
2887  }
2888}
2889```
2890
2891### revertToOriginal<sup>11+</sup>
2892
2893revertToOriginal(): Promise&lt;void&gt;
2894
2895回退到编辑前的状态,该方法使用promise形式来返回结果。
2896
2897**注意**:调用该接口后,编辑数据和编辑后的图片或视频资源都将被删除,无法恢复,请谨慎调用。
2898
2899**系统接口**:此接口为系统接口。
2900
2901**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
2902
2903**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2904
2905**返回值:**
2906
2907| 类型                                    | 说明              |
2908| --------------------------------------- | ----------------- |
2909|Promise&lt;string&gt; | Promise对象,返回void。 |
2910
2911**错误码:**
2912
2913接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2914
2915| 错误码ID | 错误信息 |
2916| -------- | ---------------------------------------- |
2917| 201   | Permission denied.        |
2918| 202   | Called by non-system application.         |
2919| 401    | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
2920| 14000011   | System inner fail.        |
2921
2922**示例:**
2923
2924```ts
2925import { dataSharePredicates } from '@kit.ArkData';
2926
2927async function example() {
2928  try {
2929    console.info('revertToOriginalPromiseDemo')
2930    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2931    let fetchOptions: photoAccessHelper.FetchOptions = {
2932      fetchColumns: [],
2933      predicates: predicates
2934    };
2935    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2936    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2937    photoAsset.revertToOriginal();
2938    console.info('revertToOriginal is successful');
2939  } catch (err) {
2940    console.error(`revertToOriginalPromiseDemo failed with error: ${err.code}, ${err.message}`);
2941  }
2942}
2943```
2944
2945### requestPhoto<sup>11+</sup>
2946
2947requestPhoto(callback: AsyncCallback&lt;image.PixelMap&gt;): string
2948
2949通过callback的形式,获取资源的快速缩略图和普通缩略图。
2950
2951快速缩略图尺寸为128\*128,普通缩略图尺寸为256\*256。应用调用接口后,callback将返回两次缩略图对象,第一次为快速缩略图,第二次为普通缩略图。
2952
2953**系统接口**:此接口为系统接口。
2954
2955**需要权限**:ohos.permission.READ_IMAGEVIDEO
2956
2957**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2958
2959**参数:**
2960
2961| 参数名        | 类型      | 必填   | 说明                                 |
2962| ---------- | ------- | ---- | ---------------------------------- |
2963| callback | AsyncCallback&lt;[image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7)&gt; | 是    | Callback对象,返回获取的缩略图,调用2次。 |
2964
2965**返回值:**
2966
2967| 类型                                    | 说明              |
2968| --------------------------------------- | ----------------- |
2969| string | 本次获取任务的id。 |
2970
2971**错误码:**
2972
2973接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2974
2975| 错误码ID | 错误信息 |
2976| -------- | ---------------------------------------- |
2977| 201   | Permission verification failed, usually the result returned by VerifyAccessToken.        |
2978| 202   | Permission verification failed, application which is not a system application uses system API.         |
2979| 401    | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
2980| 14000011   | System inner fail.        |
2981
2982**示例:**
2983
2984```ts
2985import { dataSharePredicates } from '@kit.ArkData';
2986import { image } from '@kit.ImageKit';
2987
2988async function example() {
2989  try {
2990    console.info('requestPhotoDemo')
2991    let options: photoAccessHelper.FetchOptions = {
2992      fetchColumns: [],
2993      predicates: new dataSharePredicates.DataSharePredicates()
2994    }
2995    let fetchResult = await phAccessHelper.getAssets(options);
2996    let photoAsset = await fetchResult.getFirstObject();
2997    let taskId: string = photoAsset.requestPhoto(async (err, pixel: image.PixelMap) => {
2998      if (err === undefined) {
2999        console.info("requestSource in, size: " + JSON.stringify((await pixel.getImageInfo()).size))
3000      } else {
3001        console.error(`requestSource failed with error: ${err.code}, ${err.message}`);
3002      }
3003    })
3004    console.info('requestSource taskId: ' + taskId)
3005  } catch (err) {
3006    console.error(`requestPhotoDemo failed with error: ${err.code}, ${err.message}`);
3007  }
3008}
3009```
3010
3011### requestPhoto<sup>11+</sup>
3012
3013requestPhoto(options: RequestPhotoOptions, callback: AsyncCallback&lt;image.PixelMap&gt;): string
3014
3015通过callback的形式,根据传入的选项,获取资源的缩略图。
3016
3017**系统接口**:此接口为系统接口。
3018
3019**需要权限**:ohos.permission.READ_IMAGEVIDEO
3020
3021**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3022
3023**参数:**
3024
3025| 参数名        | 类型      | 必填   | 说明                                 |
3026| ---------- | ------- | ---- | ---------------------------------- |
3027| options | [RequestPhotoOptions](#requestphotooptions11) | 是    | 获取资源缩略图的选项。 |
3028| callback | AsyncCallback&lt;[image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7)&gt; | 是    | Callback对象,返回获取的缩略图,根据选项的设置可能调用超过1次。 |
3029
3030**返回值:**
3031
3032| 类型                                    | 说明              |
3033| --------------------------------------- | ----------------- |
3034| string | 本次获取任务的id。 |
3035
3036**错误码:**
3037
3038接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3039
3040| 错误码ID | 错误信息 |
3041| -------- | ---------------------------------------- |
3042| 201   | Permission verification failed, usually the result returned by VerifyAccessToken.        |
3043| 202   | Permission verification failed, application which is not a system application uses system API.         |
3044| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
3045| 14000011   | System inner fail.        |
3046
3047**示例:**
3048
3049```ts
3050import { dataSharePredicates } from '@kit.ArkData';
3051import { image } from '@kit.ImageKit';
3052
3053async function example() {
3054  try {
3055    console.info('requestPhotoDemo')
3056    let options: photoAccessHelper.FetchOptions = {
3057      fetchColumns: [],
3058      predicates: new dataSharePredicates.DataSharePredicates()
3059    }
3060    let fetchResult = await phAccessHelper.getAssets(options);
3061    let photoAsset = await fetchResult.getFirstObject();
3062    let taskId: string = photoAsset.requestPhoto({
3063      "size": {
3064        "width": 256,
3065        "height": 256
3066      },
3067      "requestPhotoType": photoAccessHelper.RequestPhotoType.REQUEST_ALL_THUMBNAILS
3068    }, async (err, pixel: image.PixelMap) => {
3069      if (err === undefined) {
3070        console.info("requestSource in, size: " + JSON.stringify((await pixel.getImageInfo()).size))
3071      } else {
3072        console.error(`requestSource failed with error: ${err.code}, ${err.message}`);
3073      }
3074    })
3075    console.info('requestSource taskId: ' + taskId)
3076  } catch (err) {
3077    console.error(`requestPhotoDemo failed with error: ${err.code}, ${err.message}`);
3078  }
3079}
3080```
3081
3082### cancelPhotoRequest<sup>11+</sup>
3083
3084cancelPhotoRequest(requestId: string): void
3085
3086根据id取消指定的获取媒体缩略图的任务。
3087
3088**系统接口**:此接口为系统接口。
3089
3090**需要权限**:ohos.permission.READ_IMAGEVIDEO
3091
3092**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3093
3094**参数:**
3095
3096| 参数名        | 类型      | 必填   | 说明                                 |
3097| ---------- | ------- | ---- | ---------------------------------- |
3098| requestId | string | 是    | 待取消的获取媒体缩略图的任务id。 |
3099
3100**错误码:**
3101
3102接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3103
3104| 错误码ID | 错误信息 |
3105| -------- | ---------------------------------------- |
3106| 201   | Permission verification failed, usually the result returned by VerifyAccessToken.        |
3107| 202   | Permission verification failed, application which is not a system application uses system API.         |
3108| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
3109| 14000011   | System inner fail.        |
3110
3111**示例:**
3112
3113```ts
3114import { dataSharePredicates } from '@kit.ArkData';
3115import { image } from '@kit.ImageKit';
3116
3117async function example() {
3118  try {
3119    console.info('cancelPhotoRequestDemo')
3120    let options: photoAccessHelper.FetchOptions = {
3121      fetchColumns: [],
3122      predicates: new dataSharePredicates.DataSharePredicates()
3123    }
3124    let fetchResult = await phAccessHelper.getAssets(options);
3125    let photoAsset = await fetchResult.getFirstObject();
3126    let taskId: string = photoAsset.requestPhoto({
3127      "size": {
3128        "width": 256,
3129        "height": 256
3130      },
3131      "requestPhotoType": photoAccessHelper.RequestPhotoType.REQUEST_ALL_THUMBNAILS
3132    }, async (err, pixel: image.PixelMap) => {
3133      if (err === undefined) {
3134        console.info("requestSource in, size: " + JSON.stringify((await pixel.getImageInfo()).size))
3135      } else {
3136        console.error(`requestSource failed with error: ${err.code}, ${err.message}`);
3137      }
3138    })
3139    console.info('requestSource taskId: ' + taskId)
3140    photoAsset.cancelPhotoRequest(taskId);
3141  } catch (err) {
3142    console.error(`cancelPhotoRequestDemo failed with error: ${err.code}, ${err.message}`);
3143  }
3144}
3145```
3146
3147### getAnalysisData<sup>11+</sup>
3148
3149getAnalysisData(analysisType: AnalysisType): Promise\<string>
3150
3151根据智慧分析类型获取指定分析结果数据。
3152
3153**系统接口**:此接口为系统接口。
3154
3155**需要权限**:ohos.permission.READ\_IMAGEVIDEO
3156
3157**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3158
3159**参数:**
3160
3161| 参数名          | 类型           | 必填 | 说明           |
3162| :----------- | :----------- | :- | :----------- |
3163| analysisType | [AnalysisType](#analysistype11) | 是  | 需要获取的智慧分析类型。 |
3164
3165**错误码:**
3166
3167接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3168
3169| 错误码ID    | 错误信息                              |
3170| :------- | :-------------------------------- |
3171| 201      | Permission denied.                |
3172| 202      | Called by non-system application. |
3173| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
3174| 14000011 | System inner fail.                |
3175
3176**示例:**
3177
3178```ts
3179import { dataSharePredicates } from '@kit.ArkData';
3180
3181async function example() {
3182  try {
3183    console.info('getAnalysisDataDemo')
3184    let fetchOptions: photoAccessHelper.FetchOptions = {
3185      fetchColumns: [],
3186      predicates: new dataSharePredicates.DataSharePredicates()
3187    }
3188    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> =
3189      await phAccessHelper.getAssets(fetchOptions);
3190    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
3191    if (photoAsset != undefined) {
3192      let analysisData: string = await photoAsset.getAnalysisData(
3193        photoAccessHelper.AnalysisType.ANALYSIS_OCR);
3194      console.info('get ocr result: ' + JSON.stringify(analysisData));
3195    }
3196    fetchResult.close();
3197  } catch (err) {
3198    console.error(`getAnalysisDataDemofailed with error: ${err.code}, ${err.message}`);
3199  }
3200}
3201```
3202
3203## Album
3204
3205实体相册
3206
3207### recoverAssets<sup>(deprecated)</sup>
3208
3209recoverAssets(assets: Array&lt;PhotoAsset&gt;, callback: AsyncCallback&lt;void&gt;): void
3210
3211从回收站中恢复图片或者视频,需要先在回收站中预置文件资源。该方法使用callback形式来返回结果。
3212
3213> **说明:**
3214>
3215> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.recoverAssets](#recoverassets11)替代。
3216
3217**系统接口**:此接口为系统接口。
3218
3219**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
3220
3221**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3222
3223**参数:**
3224
3225| 参数名   | 类型                      | 必填 | 说明       |
3226| -------- | ------------------------- | ---- | ---------- |
3227| assets | Array&lt;[PhotoAsset](#photoasset)&gt; | 是   | 回收站中待恢复图片或者视频数组。 |
3228| callback | AsyncCallback&lt;void&gt; | 是   | callback返回void。 |
3229
3230**错误码:**
3231
3232接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3233
3234| 错误码ID | 错误信息 |
3235| -------- | ---------------------------------------- |
3236| 202      |  Called by non-system application.         |
3237| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
3238| 13900012     | Permission denied.         |
3239| 13900020     | Invalid argument.         |
3240| 14000011       | System inner fail.         |
3241
3242**示例:**
3243
3244```ts
3245import { dataSharePredicates } from '@kit.ArkData';
3246
3247async function example() {
3248  try {
3249    console.info('recoverAssetsDemoCallback');
3250    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3251    let fetchOption: photoAccessHelper.FetchOptions = {
3252      fetchColumns: [],
3253      predicates: predicates
3254    };
3255    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH);
3256    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
3257    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
3258    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
3259    album.recoverAssets([asset], (err) => {
3260      if (err === undefined) {
3261        console.info('album recoverAssets successfully');
3262      } else {
3263        console.error(`album recoverAssets failed with error: ${err.code}, ${err.message}`);
3264      }
3265    });
3266  } catch (err) {
3267    console.error(`recoverAssetsDemoCallback failed with error: ${err.code}, ${err.message}`);
3268  }
3269}
3270```
3271
3272### recoverAssets<sup>(deprecated)</sup>
3273
3274recoverAssets(assets: Array&lt;PhotoAsset&gt;): Promise&lt;void&gt;
3275
3276从回收站中恢复图片或者视频,需要先在回收站中预置文件资源。该方法使用Promise来返回结果。
3277
3278> **说明:**
3279>
3280> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.recoverAssets](#recoverassets11)替代。
3281
3282**系统接口**:此接口为系统接口。
3283
3284**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
3285
3286**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3287
3288**参数:**
3289
3290| 参数名   | 类型                      | 必填 | 说明       |
3291| -------- | ------------------------- | ---- | ---------- |
3292| assets | Array&lt;[PhotoAsset](#photoasset)&gt; | 是   | 回收站中待恢复图片或者视频数组。 |
3293
3294**返回值:**
3295
3296| 类型                                    | 说明              |
3297| --------------------------------------- | ----------------- |
3298|Promise&lt;void&gt; | Promise对象,返回void。 |
3299
3300**错误码:**
3301
3302接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3303
3304| 错误码ID | 错误信息 |
3305| -------- | ---------------------------------------- |
3306| 202      |  Called by non-system application.         |
3307| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
3308| 13900012     | Permission denied.         |
3309| 13900020     | Invalid argument.         |
3310| 14000011       | System inner fail.         |
3311
3312**示例:**
3313
3314```ts
3315import { dataSharePredicates } from '@kit.ArkData';
3316import { BusinessError } from '@kit.BasicServicesKit';
3317
3318async function example() {
3319  try {
3320    console.info('recoverAssetsDemoPromise');
3321    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3322    let fetchOption: photoAccessHelper.FetchOptions = {
3323      fetchColumns: [],
3324      predicates: predicates
3325    };
3326    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH);
3327    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
3328    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
3329    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
3330    album.recoverAssets([asset]).then(() => {
3331      console.info('album recoverAssets successfully');
3332    }).catch((err: BusinessError) => {
3333      console.error(`album recoverAssets failed with error: ${err.code}, ${err.message}`);
3334    });
3335  } catch (err) {
3336    console.error(`recoverAssetsDemoPromise failed with error: ${err.code}, ${err.message}`);
3337  }
3338}
3339```
3340
3341### deleteAssets<sup>(deprecated)</sup>
3342
3343deleteAssets(assets: Array&lt;PhotoAsset&gt;, callback: AsyncCallback&lt;void&gt;): void
3344
3345从回收站中彻底删除图片或者视频,需要先在回收站中预置文件资源。该方法使用callback形式来返回结果。
3346
3347> **说明:**
3348>
3349> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.deleteAssets](#deleteassets11)替代。
3350
3351**注意**:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。
3352
3353**系统接口**:此接口为系统接口。
3354
3355**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
3356
3357**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3358
3359**参数:**
3360
3361| 参数名   | 类型                      | 必填 | 说明       |
3362| -------- | ------------------------- | ---- | ---------- |
3363| assets | Array&lt;[PhotoAsset](#photoasset)&gt; | 是   | 回收站中待彻底删除图片或者视频数组。 |
3364| callback | AsyncCallback&lt;void&gt; | 是   | callback返回void。 |
3365
3366**错误码:**
3367
3368接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3369
3370| 错误码ID | 错误信息 |
3371| -------- | ---------------------------------------- |
3372| 202      |  Called by non-system application.         |
3373| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
3374| 13900012     | Permission denied.         |
3375| 13900020     | Invalid argument.         |
3376| 14000011       | System inner fail.         |
3377
3378**示例:**
3379
3380```ts
3381import { dataSharePredicates } from '@kit.ArkData';
3382
3383async function example() {
3384  try {
3385    console.info('deleteAssetsDemoCallback');
3386    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3387    let fetchOption: photoAccessHelper.FetchOptions = {
3388      fetchColumns: [],
3389      predicates: predicates
3390    };
3391    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH);
3392    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
3393    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
3394    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
3395    album.deleteAssets([asset], (err) => {
3396      if (err === undefined) {
3397        console.info('album deleteAssets successfully');
3398      } else {
3399        console.error(`album deleteAssets failed with error: ${err.code}, ${err.message}`);
3400      }
3401    });
3402  } catch (err) {
3403    console.error(`deleteAssetsDemoCallback failed with error: ${err.code}, ${err.message}`);
3404  }
3405}
3406```
3407
3408### deleteAssets<sup>(deprecated)</sup>
3409
3410deleteAssets(assets: Array&lt;PhotoAsset&gt;): Promise&lt;void&gt;
3411
3412从回收站中彻底删除图片或者视频,需要先在回收站中预置文件资源。该方法使用Promise来返回结果。
3413
3414> **说明:**
3415>
3416> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.deleteAssets](#deleteassets11)替代。
3417
3418**注意**:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。
3419
3420**系统接口**:此接口为系统接口。
3421
3422**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
3423
3424**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3425
3426**参数:**
3427
3428| 参数名   | 类型                      | 必填 | 说明       |
3429| -------- | ------------------------- | ---- | ---------- |
3430| assets | Array&lt;[PhotoAsset](#photoasset)&gt; | 是   | 回收站中待彻底删除图片或者视频数组。 |
3431
3432**返回值:**
3433
3434| 类型                                    | 说明              |
3435| --------------------------------------- | ----------------- |
3436|Promise&lt;void&gt; | Promise对象,返回void。 |
3437
3438**错误码:**
3439
3440接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3441
3442| 错误码ID | 错误信息 |
3443| -------- | ---------------------------------------- |
3444| 202      |  Called by non-system application.         |
3445| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
3446| 13900012     | Permission denied.         |
3447| 13900020     | Invalid argument.         |
3448| 14000011       | System inner fail.         |
3449
3450**示例:**
3451
3452```ts
3453import { dataSharePredicates } from '@kit.ArkData';
3454import { BusinessError } from '@kit.BasicServicesKit';
3455
3456async function example() {
3457  try {
3458    console.info('deleteAssetsDemoPromise');
3459    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3460    let fetchOption: photoAccessHelper.FetchOptions = {
3461      fetchColumns: [],
3462      predicates: predicates
3463    };
3464    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH);
3465    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
3466    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
3467    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
3468    album.deleteAssets([asset]).then(() => {
3469      console.info('album deleteAssets successfully');
3470    }).catch((err: BusinessError) => {
3471      console.error(`album deleteAssets failed with error: ${err.code}, ${err.message}`);
3472    });
3473  } catch (err) {
3474    console.error(`deleteAssetsDemoPromise failed with error: ${err.code}, ${err.message}`);
3475  }
3476}
3477```
3478
3479### setCoverUri<sup>(deprecated)</sup>
3480
3481setCoverUri(uri: string, callback: AsyncCallback&lt;void&gt;): void
3482
3483设置相册封面,该方法使用callback形式来返回结果。
3484
3485> **说明:**
3486>
3487> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.setCoverUri](#setcoveruri11)替代。
3488
3489**注意**:此接口只可修改用户相册封面,不允许修改系统相册封面。
3490
3491**系统接口**:此接口为系统接口。
3492
3493**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
3494
3495**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3496
3497**参数:**
3498
3499| 参数名   | 类型                      | 必填 | 说明       |
3500| -------- | ------------------------- | ---- | ---------- |
3501| uri | string | 是   | 待设置为相册封面文件的uri。 |
3502| callback | AsyncCallback&lt;void&gt; | 是   | callback返回void。 |
3503
3504**错误码:**
3505
3506接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3507
3508| 错误码ID | 错误信息 |
3509| -------- | ---------------------------------------- |
3510| 202      |  Called by non-system application.         |
3511| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
3512| 13900012     | Permission denied.         |
3513| 13900020     | Invalid argument.         |
3514| 14000011       | System inner fail.         |
3515
3516**示例:**
3517
3518```ts
3519import { dataSharePredicates } from '@kit.ArkData';
3520
3521async function example() {
3522  try {
3523    console.info('setCoverUriDemoCallback');
3524    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3525    let fetchOption: photoAccessHelper.FetchOptions = {
3526      fetchColumns: [],
3527      predicates: predicates
3528    };
3529    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
3530    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
3531    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
3532    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
3533    album.setCoverUri(asset.uri, (err) => {
3534      if (err === undefined) {
3535        console.info('album setCoverUri successfully');
3536      } else {
3537        console.error(`album setCoverUri failed with error: ${err.code}, ${err.message}`);
3538      }
3539    });
3540  } catch (err) {
3541    console.error(`setCoverUriDemoCallback failed with error: ${err.code}, ${err.message}`);
3542  }
3543}
3544```
3545
3546### setCoverUri<sup>(deprecated)</sup>
3547
3548setCoverUri(uri: string): Promise&lt;void&gt;
3549
3550设置相册封面,该方法使用Promise来返回结果。
3551
3552> **说明:**
3553>
3554> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.setCoverUri](#setcoveruri11)替代。
3555
3556**注意**:此接口只可修改用户相册封面,不允许修改系统相册封面。
3557
3558**系统接口**:此接口为系统接口。
3559
3560**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
3561
3562**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3563
3564**参数:**
3565
3566| 参数名   | 类型                      | 必填 | 说明       |
3567| -------- | ------------------------- | ---- | ---------- |
3568| uri | string | 是   | 待设置为相册封面文件的uri。 |
3569
3570**返回值:**
3571
3572| 类型                                    | 说明              |
3573| --------------------------------------- | ----------------- |
3574|Promise&lt;void&gt; | Promise对象,返回void。 |
3575
3576**错误码:**
3577
3578接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3579
3580| 错误码ID | 错误信息 |
3581| -------- | ---------------------------------------- |
3582| 202      |  Called by non-system application.         |
3583| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
3584| 13900012     | Permission denied.         |
3585| 13900020     | Invalid argument.         |
3586| 14000011       | System inner fail.         |
3587**示例:**
3588
3589```ts
3590import { dataSharePredicates } from '@kit.ArkData';
3591import { BusinessError } from '@kit.BasicServicesKit';
3592
3593async function example() {
3594  try {
3595    console.info('setCoverUriDemoPromise');
3596    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3597    let fetchOption: photoAccessHelper.FetchOptions = {
3598      fetchColumns: [],
3599      predicates: predicates
3600    };
3601    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
3602    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
3603    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
3604    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
3605    album.setCoverUri(asset.uri).then(() => {
3606      console.info('album setCoverUri successfully');
3607    }).catch((err: BusinessError) => {
3608      console.error(`album setCoverUri failed with error: ${err.code}, ${err.message}`);
3609    });
3610  } catch (err) {
3611    console.error(`setCoverUriDemoPromise failed with error: ${err.code}, ${err.message}`);
3612  }
3613}
3614```
3615
3616## MediaAssetEditData<sup>11+</sup>
3617
3618资产编辑数据。
3619
3620**系统接口**:此接口为系统接口。
3621
3622**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3623
3624### 属性
3625
3626| 名称           | 类型    | 可读   | 可写  | 说明   |
3627| ------------ | ------ | ---- | ---- | ------- |
3628| compatibleFormat | string | 是    | 是    | 编辑数据的格式。**系统接口**:此接口为系统接口。    |
3629| formatVersion | string | 是    | 是   | 编辑数据格式的版本。**系统接口**:此接口为系统接口。    |
3630| data | string | 是    | 是   | 编辑数据的内容。**系统接口**:此接口为系统接口。    |
3631
3632### constructor<sup>11+</sup>
3633
3634constructor(compatibleFormat: string, formatVersion: string)
3635
3636构造函数。
3637
3638**系统接口**:此接口为系统接口。
3639
3640**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3641
3642**参数:**
3643
3644| 参数名   | 类型                      | 必填 | 说明       |
3645| -------- | ------------------------- | ---- | ---------- |
3646| compatibleFormat | string | 是   | 编辑数据的格式。 |
3647| formatVersion | string | 是   | 编辑数据格式的版本。 |
3648
3649**错误码:**
3650
3651接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3652
3653| 错误码ID | 错误信息 |
3654| -------- | ---------------------------------------- |
3655| 202      |  Called by non-system application.         |
3656| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
3657| 14000011       | System inner fail.          |
3658
3659**示例:**
3660
3661```ts
3662let assetEditData: photoAccessHelper.MediaAssetEditData = new photoAccessHelper.MediaAssetEditData('system', '1.0');
3663```
3664
3665## MediaAssetChangeRequest<sup>11+</sup>
3666
3667资产变更请求。
3668
3669**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3670
3671### createAssetRequest<sup>11+</sup>
3672
3673static createAssetRequest(context: Context, displayName: string, options?: PhotoCreateOptions): MediaAssetChangeRequest
3674
3675指定待创建的图片或者视频的文件名,创建资产变更请求。
3676
3677待创建的文件名参数规格为:
3678- 应包含有效文件主名和图片或视频扩展名。
3679- 文件名字符串长度为1~255。
3680- 文件主名中不允许出现非法字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ]
3681
3682**系统接口**:此接口为系统接口。
3683
3684**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3685
3686**参数:**
3687
3688| 参数名  | 类型    | 必填 | 说明                       |
3689| ------- | ------- | ---- | -------------------------- |
3690| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是   | 传入Ability实例的Context。 |
3691| displayName  | string        | 是   | 待创建的图片或者视频文件名。              |
3692| options  | [PhotoCreateOptions](#photocreateoptions)        | 否   | 图片或视频的创建选项。              |
3693
3694**返回值:**
3695
3696| 类型                                    | 说明              |
3697| --------------------------------------- | ----------------- |
3698| [MediaAssetChangeRequest](#mediaassetchangerequest11) | 返回创建资产的变更请求。 |
3699
3700**错误码:**
3701
3702接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3703
3704| 错误码ID | 错误信息 |
3705| -------- | ---------------------------------------- |
3706| 202   |  Called by non-system application.         |
3707| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
3708| 14000001      | Invalid display name.         |
3709| 14000011       | System inner fail.         |
3710
3711**示例:**
3712
3713```ts
3714async function example() {
3715  console.info('createAssetRequestDemo');
3716  try {
3717    let testFileName: string = 'testFile' + Date.now() + '.jpg';
3718    let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, testFileName);
3719    // 需要确保fileUri对应的资源存在
3720    let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg';
3721    assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, fileUri);
3722    await phAccessHelper.applyChanges(assetChangeRequest);
3723    console.info('apply createAssetRequest successfully');
3724  } catch (err) {
3725    console.error(`createAssetRequestDemo failed with error: ${err.code}, ${err.message}`);
3726  }
3727}
3728```
3729
3730### setFavorite<sup>11+</sup>
3731
3732setFavorite(favoriteState: boolean): void
3733
3734将文件设置为收藏文件。
3735
3736**系统接口**:此接口为系统接口。
3737
3738**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3739
3740**参数:**
3741
3742| 参数名        | 类型      | 必填   | 说明                                 |
3743| ---------- | ------- | ---- | ---------------------------------- |
3744| favoriteState | boolean | 是    | 是否设置为收藏文件, true:设置为收藏文件;false:取消收藏。 |
3745
3746**错误码:**
3747
3748接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3749
3750| 错误码ID | 错误信息 |
3751| -------- | ---------------------------------------- |
3752| 202        |  Called by non-system application.         |
3753| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
3754| 14000011       | System inner fail.         |
3755
3756**示例:**
3757
3758```ts
3759import { dataSharePredicates } from '@kit.ArkData';
3760import { BusinessError } from '@kit.BasicServicesKit';
3761
3762async function example() {
3763  console.info('setFavoriteDemo');
3764  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3765  let fetchOption: photoAccessHelper.FetchOptions = {
3766    fetchColumns: [],
3767    predicates: predicates
3768  };
3769  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
3770  let asset = await fetchResult.getFirstObject();
3771  let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
3772  assetChangeRequest.setFavorite(true);
3773  phAccessHelper.applyChanges(assetChangeRequest).then(() => {
3774    console.info('apply setFavorite successfully');
3775  }).catch((err: BusinessError) => {
3776    console.error(`apply setFavorite failed with error: ${err.code}, ${err.message}`);
3777  });
3778}
3779```
3780
3781### setHidden<sup>11+</sup>
3782
3783setHidden(hiddenState: boolean): void
3784
3785将文件设置为隐藏文件。
3786
3787**系统接口**:此接口为系统接口。
3788
3789**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3790
3791**参数:**
3792
3793| 参数名        | 类型      | 必填   | 说明                                 |
3794| ---------- | ------- | ---- | ---------------------------------- |
3795| hiddenState | boolean  | 是    | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 |
3796
3797**错误码:**
3798
3799接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3800
3801| 错误码ID | 错误信息 |
3802| -------- | ---------------------------------------- |
3803| 202        |  Called by non-system application.         |
3804| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
3805| 14000011       | System inner fail.         |
3806
3807**示例:**
3808
3809```ts
3810import { dataSharePredicates } from '@kit.ArkData';
3811import { BusinessError } from '@kit.BasicServicesKit';
3812
3813async function example() {
3814  console.info('setHiddenDemo');
3815  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3816  let fetchOption: photoAccessHelper.FetchOptions = {
3817    fetchColumns: [],
3818    predicates: predicates
3819  };
3820  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
3821  let asset = await fetchResult.getFirstObject();
3822  let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
3823  assetChangeRequest.setHidden(true);
3824  phAccessHelper.applyChanges(assetChangeRequest).then(() => {
3825    console.info('apply setHidden successfully');
3826  }).catch((err: BusinessError) => {
3827    console.error(`apply setHidden failed with error: ${err.code}, ${err.message}`);
3828  });
3829}
3830```
3831
3832### setUserComment<sup>11+</sup>
3833
3834setUserComment(userComment: string): void
3835
3836修改媒体资产的备注信息。
3837
3838**系统接口**:此接口为系统接口。
3839
3840**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3841
3842**参数:**
3843
3844| 参数名        | 类型      | 必填   | 说明                                 |
3845| ---------- | ------- | ---- | ---------------------------------- |
3846| userComment | string | 是   | 待修改的资产备注信息,备注信息最长为420字符。 |
3847
3848**错误码:**
3849
3850接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3851
3852| 错误码ID | 错误信息 |
3853| -------- | ---------------------------------------- |
3854| 202        |  Called by non-system application.         |
3855| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
3856| 14000011       | System inner fail.         |
3857
3858**示例:**
3859
3860```ts
3861import { dataSharePredicates } from '@kit.ArkData';
3862import { BusinessError } from '@kit.BasicServicesKit';
3863
3864async function example() {
3865  console.info('setUserCommentDemo');
3866  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3867  let fetchOption: photoAccessHelper.FetchOptions = {
3868    fetchColumns: [],
3869    predicates: predicates
3870  };
3871  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
3872  let asset = await fetchResult.getFirstObject();
3873  let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
3874  let userComment: string = 'test_set_user_comment';
3875  assetChangeRequest.setUserComment(userComment);
3876  phAccessHelper.applyChanges(assetChangeRequest).then(() => {
3877    console.info('apply setUserComment successfully');
3878  }).catch((err: BusinessError) => {
3879    console.error(`apply setUserComment failed with error: ${err.code}, ${err.message}`);
3880  });
3881}
3882```
3883
3884### setEditData<sup>11+</sup>
3885
3886setEditData(editData: MediaAssetEditData): void
3887
3888保存资产的编辑数据。
3889
3890**系统接口**:此接口为系统接口。
3891
3892**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3893
3894**参数:**
3895
3896| 参数名        | 类型      | 必填   | 说明                                 |
3897| ---------- | ------- | ---- | ---------------------------------- |
3898| editData | [MediaAssetEditData](#mediaasseteditdata11) | 是   | 待保存的资产编辑数据。 |
3899
3900**错误码:**
3901
3902接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3903
3904| 错误码ID | 错误信息 |
3905| -------- | ---------------------------------------- |
3906| 202        |  Called by non-system application.         |
3907| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
3908| 14000011       | System inner fail.         |
3909
3910**示例:**
3911
3912```ts
3913import { dataSharePredicates } from '@kit.ArkData';
3914import { BusinessError } from '@kit.BasicServicesKit';
3915
3916async function example() {
3917  console.info('setEditDataDemo');
3918  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3919  let fetchOption: photoAccessHelper.FetchOptions = {
3920    fetchColumns: [],
3921    predicates: predicates
3922  };
3923  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
3924  let asset = await fetchResult.getFirstObject();
3925  let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
3926
3927  let assetEditData: photoAccessHelper.MediaAssetEditData = new photoAccessHelper.MediaAssetEditData('system', '1.0');
3928  let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg';
3929  assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, fileUri);
3930  assetEditData.data = '123456';
3931  assetChangeRequest.setEditData(assetEditData);
3932  phAccessHelper.applyChanges(assetChangeRequest).then(() => {
3933    console.info('apply setEditData successfully');
3934  }).catch((err: BusinessError) => {
3935    console.error(`apply setEditData failed with error: ${err.code}, ${err.message}`);
3936  });
3937}
3938```
3939
3940### addResource<sup>11+</sup>
3941
3942addResource(type: ResourceType, proxy: PhotoProxy): void
3943
3944通过PhotoProxy数据添加资源。
3945
3946**注意**:对于同一个资产变更请求,不支持在成功添加资源后,重复调用该接口。
3947
3948**系统接口**:此接口为系统接口,仅提供给相机应用使用。
3949
3950**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3951
3952**参数:**
3953
3954| 参数名  | 类型                              | 必填 | 说明                   |
3955| ------- |---------------------------------| ---- |----------------------|
3956| type | [ResourceType](#resourcetype11) | 是   | 待添加资源的类型。            |
3957| proxy | [PhotoProxy](#photoproxy11)     | 是   | 待添加资源的PhotoProxy 数据。 |
3958
3959**错误码:**
3960
3961接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3962
3963| 错误码ID    | 错误信息                              |
3964|----------|-----------------------------------|
3965| 202      | Called by non-system application. |
3966| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
3967| 14000011 | System inner fail.                |
3968| 14000016 | Operation Not Support.            |
3969
3970**示例:**
3971
3972```ts
3973class PhotoProxyImpl implements photoAccessHelper.PhotoProxy {
3974  // 应用实现PhotoProxy
3975}
3976
3977async function example() {
3978  console.info('addResourceByPhotoProxyDemo');
3979  try {
3980    let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE;
3981    let extension: string = 'jpg';
3982    let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, photoType, extension);
3983    let photoProxy: PhotoProxyImpl = new PhotoProxyImpl();
3984    assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, photoProxy);
3985    await phAccessHelper.applyChanges(assetChangeRequest);
3986    console.info('addResourceByPhotoProxy successfully');
3987  } catch (err) {
3988    console.error(`addResourceByPhotoProxyDemo failed with error: ${err.code}, ${err.message}`);
3989  }
3990}
3991```
3992
3993### setLocation<sup>11+</sup>
3994
3995setLocation(longitude: number, latitude: number): void
3996
3997设置文件的经纬度信息。
3998
3999**系统接口**:此接口为系统接口
4000
4001**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4002
4003**参数:**
4004
4005| 参数名  | 类型          | 必填 | 说明    |
4006| ------- |-------------| ---- |-------|
4007| longitude | number      | 是   | 经度。 |
4008| latitude | number | 是   | 纬度。   |
4009
4010**错误码:**
4011
4012接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4013
4014| 错误码ID | 错误信息 |
4015| -------- | ---------------------------------------- |
4016| 202      | Called by non-system application. |
4017| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4018| 14000011 |  System inner fail.         |
4019
4020**示例:**
4021
4022```ts
4023import { dataSharePredicates } from '@kit.ArkData';
4024import { BusinessError } from '@kit.BasicServicesKit';
4025
4026async function example() {
4027  console.info('setLocationDemo');
4028  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4029  let fetchOption: photoAccessHelper.FetchOptions = {
4030    fetchColumns: [],
4031    predicates: predicates
4032  };
4033  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
4034  let asset = await fetchResult.getFirstObject();
4035  let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
4036  assetChangeRequest.setLocation(120.52, 30.40);
4037  phAccessHelper.applyChanges(assetChangeRequest).then(() => {
4038    console.info('apply setLocation successfully');
4039  }).catch((err: BusinessError) => {
4040    console.error(`apply setLocation failed with error: ${err.code}, ${err.message}`);
4041  });
4042}
4043```
4044
4045### setCameraShotKey<sup>12+</sup>
4046
4047setCameraShotKey(cameraShotKey: string): void
4048
4049设置锁屏相机拍照或录像的标记字段。
4050
4051**系统接口**:此接口为系统接口。
4052
4053**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4054
4055**参数:**
4056
4057| 参数名        | 类型      | 必填   | 说明                                 |
4058| ---------- | ------- | ---- | ---------------------------------- |
4059| cameraShotKey | string | 是   | 锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。 |
4060
4061**错误码:**
4062
4063接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4064
4065| 错误码ID | 错误信息 |
4066| -------- | ---------------------------------------- |
4067| 202        |  Called by non-system application.         |
4068| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4069| 14000011       | System inner fail.         |
4070
4071**示例:**
4072
4073```ts
4074async function example(asset: photoAccessHelper.PhotoAsset) {
4075  console.info('setCameraShotKeyDemo');
4076  try {
4077    let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
4078    let cameraShotKey: string = 'test_MediaAssetChangeRequest_setCameraShotKey';
4079    assetChangeRequest.setCameraShotKey(cameraShotKey);
4080    await phAccessHelper.applyChanges(assetChangeRequest);
4081    console.info('apply setCameraShotKey successfully');
4082  } catch (err) {
4083    console.error(`apply setCameraShotKey failed with error: ${err.code}, ${err.message}`);
4084  }
4085}
4086```
4087
4088### setEffectMode<sup>12+</sup>
4089
4090setEffectMode(mode: MovingPhotoEffectMode): void
4091
4092设置动态照片的效果模式。
4093
4094**系统接口**:此接口为系统接口。
4095
4096**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4097
4098**参数:**
4099
4100| 参数名        | 类型      | 必填   | 说明                                 |
4101| ---------- | ------- | ---- | ---------------------------------- |
4102| mode | [MovingPhotoEffectMode](#movingphotoeffectmode12) | 是   | 动态照片效果模式。 |
4103
4104**错误码:**
4105
4106接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4107
4108| 错误码ID | 错误信息 |
4109| -------- | ---------------------------------------- |
4110| 202        |  Called by non-system application.         |
4111| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4112| 14000011       | System inner fail.         |
4113| 14000016       | Operation Not Support.         |
4114
4115**示例:**
4116
4117```ts
4118async function example(asset: photoAccessHelper.PhotoAsset) {
4119  console.info('setEffectModeDemo');
4120  try {
4121    let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
4122    assetChangeRequest.setEffectMode(photoAccessHelper.MovingPhotoEffectMode.LONG_EXPOSURE);
4123    // 需要确保fileUri对应的资源存在
4124    let imageFileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/long_exposure.jpg';
4125    let videoFileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/long_exposure.mp4';
4126    assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, imageFileUri);
4127    assetChangeRequest.addResource(photoAccessHelper.ResourceType.VIDEO_RESOURCE, videoFileUri);
4128    await phAccessHelper.applyChanges(assetChangeRequest);
4129    console.info('apply setEffectMode successfully');
4130  } catch (err) {
4131    console.error(`apply setEffectMode failed with error: ${err.code}, ${err.message}`);
4132  }
4133}
4134```
4135
4136## MediaAssetsChangeRequest<sup>11+</sup>
4137
4138批量资产变更请求。
4139
4140**系统接口**:此接口为系统接口。
4141
4142**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4143
4144### constructor<sup>11+</sup>
4145
4146constructor(assets: Array&lt;PhotoAsset&gt;)
4147
4148构造函数。
4149
4150**系统接口**:此接口为系统接口。
4151
4152**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4153
4154**参数:**
4155
4156| 参数名   | 类型                      | 必填 | 说明       |
4157| -------- | ------------------------- | ---- | ---------- |
4158| assets | Array&lt;[PhotoAsset](#photoasset)&gt; | 是   | 需要变更的资产数组。 |
4159
4160**错误码:**
4161
4162接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4163
4164| 错误码ID | 错误信息 |
4165| -------- | ---------------------------------------- |
4166| 202        |  Called by non-system application.   |
4167| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4168| 14000011       | System inner fail.          |
4169
4170**示例:**
4171
4172```ts
4173import { dataSharePredicates } from '@kit.ArkData';
4174
4175async function example() {
4176  console.info('MediaAssetsChangeRequest constructorDemo');
4177  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4178  let fetchOption: photoAccessHelper.FetchOptions = {
4179    fetchColumns: [],
4180    predicates: predicates
4181  };
4182  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
4183  let photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects();
4184  let assetsChangeRequest: photoAccessHelper.MediaAssetsChangeRequest = new photoAccessHelper.MediaAssetsChangeRequest(photoAssetList);
4185}
4186```
4187
4188### setFavorite<sup>11+</sup>
4189
4190setFavorite(favoriteState: boolean): void
4191
4192将文件设置为收藏文件。
4193
4194**系统接口**:此接口为系统接口。
4195
4196**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4197
4198**参数:**
4199
4200| 参数名        | 类型      | 必填   | 说明                                 |
4201| ---------- | ------- | ---- | ---------------------------------- |
4202| favoriteState | boolean | 是    | 是否设置为收藏文件, true:设置为收藏文件;false:取消收藏。 |
4203
4204**错误码:**
4205
4206接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4207
4208| 错误码ID | 错误信息 |
4209| -------- | ---------------------------------------- |
4210| 202        |  Called by non-system application.         |
4211| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4212| 14000011       | System inner fail.         |
4213
4214**示例:**
4215
4216```ts
4217import { dataSharePredicates } from '@kit.ArkData';
4218import { BusinessError } from '@kit.BasicServicesKit';
4219
4220async function example() {
4221  console.info('setFavoriteDemo');
4222  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4223  let fetchOption: photoAccessHelper.FetchOptions = {
4224    fetchColumns: [],
4225    predicates: predicates
4226  };
4227  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
4228  let photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects();
4229  let assetsChangeRequest: photoAccessHelper.MediaAssetsChangeRequest = new photoAccessHelper.MediaAssetsChangeRequest(photoAssetList);
4230  assetsChangeRequest.setFavorite(true);
4231  phAccessHelper.applyChanges(assetsChangeRequest).then(() => {
4232    console.info('apply setFavorite successfully');
4233  }).catch((err: BusinessError) => {
4234    console.error(`apply setFavorite failed with error: ${err.code}, ${err.message}`);
4235  });
4236}
4237```
4238
4239### setHidden<sup>11+</sup>
4240
4241setHidden(hiddenState: boolean): void
4242
4243将文件设置为隐藏文件。
4244
4245**系统接口**:此接口为系统接口。
4246
4247**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4248
4249**参数:**
4250
4251| 参数名        | 类型      | 必填   | 说明                                 |
4252| ---------- | ------- | ---- | ---------------------------------- |
4253| hiddenState | boolean  | 是    | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 |
4254
4255**错误码:**
4256
4257接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4258
4259| 错误码ID | 错误信息 |
4260| -------- | ---------------------------------------- |
4261| 202        |  Called by non-system application.         |
4262| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4263| 14000011       | System inner fail.         |
4264
4265**示例:**
4266
4267```ts
4268import { dataSharePredicates } from '@kit.ArkData';
4269import { BusinessError } from '@kit.BasicServicesKit';
4270
4271async function example() {
4272  console.info('setHiddenDemo');
4273  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4274  let fetchOption: photoAccessHelper.FetchOptions = {
4275    fetchColumns: [],
4276    predicates: predicates
4277  };
4278  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
4279  let photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects();
4280  let assetsChangeRequest: photoAccessHelper.MediaAssetsChangeRequest = new photoAccessHelper.MediaAssetsChangeRequest(photoAssetList);
4281  assetsChangeRequest.setHidden(true);
4282  phAccessHelper.applyChanges(assetsChangeRequest).then(() => {
4283    console.info('apply setHidden successfully');
4284  }).catch((err: BusinessError) => {
4285    console.error(`apply setHidden failed with error: ${err.code}, ${err.message}`);
4286  });
4287}
4288```
4289
4290### setUserComment<sup>11+</sup>
4291
4292setUserComment(userComment: string): void
4293
4294修改媒体资产的备注信息。
4295
4296**系统接口**:此接口为系统接口。
4297
4298**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4299
4300**参数:**
4301
4302| 参数名        | 类型      | 必填   | 说明                                 |
4303| ---------- | ------- | ---- | ---------------------------------- |
4304| userComment | string | 是   | 待修改的资产备注信息,备注信息最长为420字符。 |
4305
4306**错误码:**
4307
4308接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4309
4310| 错误码ID | 错误信息 |
4311| -------- | ---------------------------------------- |
4312| 202        |  Called by non-system application.         |
4313| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4314| 14000011       | System inner fail.         |
4315
4316**示例:**
4317
4318```ts
4319import { dataSharePredicates } from '@kit.ArkData';
4320import { BusinessError } from '@kit.BasicServicesKit';
4321
4322async function example() {
4323  console.info('setUserCommentDemo');
4324  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4325  let fetchOption: photoAccessHelper.FetchOptions = {
4326    fetchColumns: [],
4327    predicates: predicates
4328  };
4329  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
4330  let photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects();
4331  let assetsChangeRequest: photoAccessHelper.MediaAssetsChangeRequest = new photoAccessHelper.MediaAssetsChangeRequest(photoAssetList);
4332  assetsChangeRequest.setUserComment('test_set_user_comment');
4333  phAccessHelper.applyChanges(assetsChangeRequest).then(() => {
4334    console.info('apply setUserComment successfully');
4335  }).catch((err: BusinessError) => {
4336    console.error(`apply setUserComment failed with error: ${err.code}, ${err.message}`);
4337  });
4338}
4339```
4340
4341## MediaAlbumChangeRequest<sup>11+</sup>
4342
4343相册变更请求。
4344
4345**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4346
4347### createAlbumRequest<sup>11+</sup>
4348
4349static createAlbumRequest(context: Context, name: string): MediaAlbumChangeRequest
4350
4351创建相册变更请求。
4352
4353相册名的参数规格为:
4354- 相册名字符串长度为1~255。
4355- 不允许出现非法字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ]
4356- 英文字符大小写不敏感。
4357- 相册名不允许重名。
4358
4359**系统接口**:此接口为系统接口。
4360
4361**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4362
4363**参数:**
4364
4365| 参数名  | 类型    | 必填 | 说明                       |
4366| ------- | ------- | ---- | -------------------------- |
4367| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是   | 传入Ability实例的Context。 |
4368| name | string | 是   | 待创建相册的名称。|
4369
4370**返回值:**
4371
4372| 类型                                    | 说明              |
4373| --------------------------------------- | ----------------- |
4374| [MediaAlbumChangeRequest](#mediaalbumchangerequest11) | 返回创建相册的变更请求。 |
4375
4376**错误码:**
4377
4378接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4379
4380| 错误码ID | 错误信息 |
4381| -------- | ---------------------------------------- |
4382| 202   |  Called by non-system application.         |
4383| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4384| 14000011   | System inner fail.        |
4385
4386**示例:**
4387
4388```ts
4389async function example() {
4390  console.info('createAlbumRequestDemo');
4391  try {
4392    let albumName: string = 'newAlbumName' + new Date().getTime();
4393    let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = photoAccessHelper.MediaAlbumChangeRequest.createAlbumRequest(context, albumName);
4394    await phAccessHelper.applyChanges(albumChangeRequest);
4395    console.info('apply createAlbumRequest successfully');
4396  } catch (err) {
4397    console.error(`createAlbumRequestDemo failed with error: ${err.code}, ${err.message}`);
4398  }
4399}
4400```
4401
4402### deleteAlbums<sup>11+</sup>
4403
4404static deleteAlbums(context: Context, albums: Array&lt;Album&gt;): Promise&lt;void&gt;
4405
4406删除相册,使用Promise方式返回结果。
4407
4408删除相册前需先确保相册存在,只能删除用户相册。
4409
4410**系统接口**:此接口为系统接口。
4411
4412**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
4413
4414**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4415
4416**参数:**
4417
4418| 参数名  | 类型    | 必填 | 说明                       |
4419| ------- | ------- | ---- | -------------------------- |
4420| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是   | 传入Ability实例的Context。 |
4421| albums  |  Array&lt;[Album](#album)&gt;          | 是   | 待删除的相册数组。         |
4422
4423**返回值:**
4424
4425| 类型                                    | 说明              |
4426| --------------------------------------- | ----------------- |
4427| Promise&lt;void&gt;| Promise对象,返回void。 |
4428
4429**错误码:**
4430
4431接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4432
4433| 错误码ID | 错误信息 |
4434| -------- | ---------------------------------------- |
4435| 201      |  Permission denied.         |
4436| 202   |  Called by non-system application.  |
4437| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4438| 14000011 |  System inner fail.         |
4439
4440**示例:**
4441
4442```ts
4443import { dataSharePredicates } from '@kit.ArkData';
4444
4445async function example() {
4446  console.info('deleteAlbumsDemo');
4447  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4448  let fetchOptions: photoAccessHelper.FetchOptions = {
4449    fetchColumns: [],
4450    predicates: predicates
4451  };
4452  try {
4453    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions);
4454    let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
4455    await photoAccessHelper.MediaAlbumChangeRequest.deleteAlbums(context, [album]);
4456    console.info('deleteAlbums successfully');
4457  } catch (err) {
4458    console.error(`deleteAlbumsDemo failed with error: ${err.code}, ${err.message}`);
4459  }
4460}
4461```
4462
4463### setCoverUri<sup>11+</sup>
4464
4465setCoverUri(coverUri: string): void
4466
4467设置相册封面。
4468
4469**系统接口**:此接口为系统接口。
4470
4471**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4472
4473**参数:**
4474
4475| 参数名        | 类型      | 必填   | 说明                                 |
4476| ---------- | ------- | ---- | ---------------------------------- |
4477| coverUri | string | 是   | 待设置为相册封面文件的uri。 |
4478
4479**错误码:**
4480
4481接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4482
4483| 错误码ID | 错误信息 |
4484| -------- | ---------------------------------------- |
4485| 202        |  Called by non-system application.         |
4486| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4487| 14000011       | System inner fail.         |
4488
4489**示例:**
4490
4491```ts
4492import { dataSharePredicates } from '@kit.ArkData';
4493
4494async function example() {
4495  console.info('setCoverUriDemo');
4496  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4497  let fetchOptions: photoAccessHelper.FetchOptions = {
4498    fetchColumns: [],
4499    predicates: predicates
4500  };
4501  try {
4502    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
4503    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
4504    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions);
4505    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
4506
4507    let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
4508    albumChangeRequest.setCoverUri(asset.uri);
4509    await phAccessHelper.applyChanges(albumChangeRequest);
4510    console.info('setCoverUri successfully');
4511  } catch (err) {
4512    console.error(`setCoverUriDemo failed with error: ${err.code}, ${err.message}`);
4513  }
4514}
4515```
4516
4517### moveAssets<sup>11+</sup>
4518
4519moveAssets(assets: Array&lt;PhotoAsset&gt;, targetAlbum: Album): void
4520
4521从相册中移动资产到另一个目标相册。
4522
4523**系统接口**:此接口为系统接口。
4524
4525**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4526
4527**参数:**
4528
4529| 参数名        | 类型      | 必填   | 说明                                 |
4530| ---------- | ------- | ---- | ---------------------------------- |
4531| assets | Array&lt;[PhotoAsset](#photoasset)&gt; | 是   | 待从相册中移出的资产数组。 |
4532| targetAlbum | Album | 是   | 待移入资产的目标相册。 |
4533
4534**错误码:**
4535
4536接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4537
4538| 错误码ID | 错误信息 |
4539| -------- | ---------------------------------------- |
4540| 202      |  Called by non-system application.         |
4541| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4542| 14000011       | System inner fail.         |
4543| 14000016 |  Operation Not Support.     |
4544
4545**示例:**
4546
4547```ts
4548import { dataSharePredicates } from '@kit.ArkData';
4549
4550async function example() {
4551  console.info('moveAssetsDemo');
4552  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4553  let fetchOptions: photoAccessHelper.FetchOptions = {
4554    fetchColumns: [],
4555    predicates: predicates
4556  };
4557  try {
4558    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
4559    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
4560    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions);
4561    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
4562
4563    if (albumFetchResult.isAfterLast()) {
4564      console.error('lack of album to be moved into');
4565      return;
4566    }
4567    let nextAlbum: photoAccessHelper.Album = await albumFetchResult.getNextObject();
4568    let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
4569    albumChangeRequest.moveAssets([asset], nextAlbum);
4570    await phAccessHelper.applyChanges(albumChangeRequest);
4571    console.info('moveAssets successfully');
4572  } catch (err) {
4573    console.error(`moveAssetsDemo failed with error: ${err.code}, ${err.message}`);
4574  }
4575}
4576```
4577
4578### recoverAssets<sup>11+</sup>
4579
4580recoverAssets(assets: Array&lt;PhotoAsset&gt;): void
4581
4582从回收站中恢复资产。
4583
4584**系统接口**:此接口为系统接口。
4585
4586**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4587
4588**参数:**
4589
4590| 参数名        | 类型      | 必填   | 说明                                 |
4591| ---------- | ------- | ---- | ---------------------------------- |
4592| assets | Array&lt;[PhotoAsset](#photoasset)&gt; | 是   | 待从回收站中恢复的资产数组。 |
4593
4594**错误码:**
4595
4596接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4597
4598| 错误码ID | 错误信息 |
4599| -------- | ---------------------------------------- |
4600| 202      |  Called by non-system application.         |
4601| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4602| 14000011       | System inner fail.         |
4603| 14000016 |  Operation Not Support.     |
4604
4605**示例:**
4606
4607```ts
4608import { dataSharePredicates } from '@kit.ArkData';
4609
4610async function example() {
4611  console.info('recoverAssetsDemo');
4612  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4613  let fetchOptions: photoAccessHelper.FetchOptions = {
4614    fetchColumns: [],
4615    predicates: predicates
4616  };
4617  try {
4618    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH);
4619    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
4620    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions);
4621    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
4622
4623    let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
4624    albumChangeRequest.recoverAssets([asset]);
4625    await phAccessHelper.applyChanges(albumChangeRequest);
4626    console.info('recoverAssets successfully');
4627  } catch (err) {
4628    console.error(`recoverAssetsDemo failed with error: ${err.code}, ${err.message}`);
4629  }
4630}
4631```
4632
4633### deleteAssets<sup>11+</sup>
4634
4635deleteAssets(assets: Array&lt;PhotoAsset&gt;): void
4636
4637从回收站中彻底删除资产。
4638
4639**注意**:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。
4640
4641**系统接口**:此接口为系统接口。
4642
4643**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4644
4645**参数:**
4646
4647| 参数名        | 类型      | 必填   | 说明                                 |
4648| ---------- | ------- | ---- | ---------------------------------- |
4649| assets | Array&lt;[PhotoAsset](#photoasset)&gt; | 是   | 待从回收站中彻底删除的资产数组。 |
4650
4651**错误码:**
4652
4653接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4654
4655| 错误码ID | 错误信息 |
4656| -------- | ---------------------------------------- |
4657| 202      |  Called by non-system application.         |
4658| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4659| 14000011       | System inner fail.         |
4660| 14000016 |  Operation Not Support.     |
4661
4662**示例:**
4663
4664```ts
4665import { dataSharePredicates } from '@kit.ArkData';
4666
4667async function example() {
4668  console.info('deleteAssetsPermanentlyDemo');
4669  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4670  let fetchOptions: photoAccessHelper.FetchOptions = {
4671    fetchColumns: [],
4672    predicates: predicates
4673  };
4674  try {
4675    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH);
4676    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
4677    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions);
4678    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
4679
4680    let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
4681    albumChangeRequest.deleteAssets([asset]);
4682    await phAccessHelper.applyChanges(albumChangeRequest);
4683    console.info('succeed to deleteAssets permanently');
4684  } catch (err) {
4685    console.error(`deleteAssetsPermanentlyDemo failed with error: ${err.code}, ${err.message}`);
4686  }
4687}
4688```
4689
4690### setDisplayLevel<sup>11+</sup>
4691
4692setDisplayLevel(displayLevel: number): void
4693
4694设置人像相册的显示级别。
4695
4696**系统接口**:此接口为系统接口。
4697
4698**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4699
4700**参数:**
4701
4702| 参数名        | 类型      | 必填   | 说明                                 |
4703| ---------- | ------- | ---- | ---------------------------------- |
4704| displayLevel | number | 是    | 设置人像相册的显示级别, 0:取消该人像相册收藏;1:设置人像相册为首届面;2:设置人像相册为更多界面;3:设置人像相册为收藏界面。 |
4705
4706**错误码:**
4707
4708接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4709
4710| 错误码ID | 错误信息 |
4711| -------- | ---------------------------------------- |
4712| 202        |  Called by non-system application.         |
4713| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4714| 14000011       | System inner fail.         |
4715
4716**示例:**
4717
4718``` ts
4719import { dataSharePredicates } from '@kit.ArkData';
4720
4721async function example() {
4722  try {
4723    console.info('setDisplayLevel Example')
4724    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4725    predicates.equalTo('user_display_level', 2);
4726    let fetchOptions: photoAccessHelper.FetchOptions = {
4727      fetchColumns: [],
4728      predicates: predicates
4729    };
4730    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.PORTRAIT, fetchOptions);
4731    let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
4732    let changeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
4733    changeRequest.setDisplayLevel(1);
4734    await phAccessHelper.applyChanges(changeRequest);
4735  } catch (err) {
4736    console.error(`setDisplayLevel failed with error: ${err.code}, ${err.message}`);
4737  }
4738}
4739```
4740
4741### setIsMe<sup>11+</sup>
4742
4743setIsMe(): void
4744
4745将人像相册的人物关系设置为“我”。
4746
4747**系统接口**:此接口为系统接口。
4748
4749**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4750
4751**错误码:**
4752
4753接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4754
4755| 错误码ID | 错误信息 |
4756| -------- | ---------------------------------------- |
4757| 202        |  Called by non-system application.         |
4758| 401    | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
4759| 14000011       | System inner fail.         |
4760
4761**示例:**
4762
4763``` ts
4764import { dataSharePredicates } from '@kit.ArkData';
4765
4766async function example() {
4767  try {
4768    console.info('setIsMe Example')
4769    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4770    predicates.equalTo('user_display_level', 2);
4771    let fetchOptions: photoAccessHelper.FetchOptions = {
4772      fetchColumns: [],
4773      predicates: predicates
4774    };
4775    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.PORTRAIT, fetchOptions);
4776    let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
4777    let changeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
4778    changeRequest.setIsMe();
4779    await phAccessHelper.applyChanges(changeRequest);
4780  } catch (err) {
4781    console.error(`setIsMe failed with error: ${err.code}, ${err.message}`);
4782  }
4783}
4784```
4785
4786### dismissAssets<sup>11+</sup>
4787
4788dismissAssets(assets: Array&lt;PhotoAsset&gt;): void
4789
4790从该人像相册或合影相册中中移除指定图片。
4791
4792**系统接口**:此接口为系统接口。
4793
4794**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4795
4796**参数:**
4797
4798| 参数名        | 类型      | 必填   | 说明                                 |
4799| ---------- | ------- | ---- | ---------------------------------- |
4800| assets | Array&lt;PhotoAsset&gt; | 是    | 需要移除的文件列表 。 |
4801
4802**错误码:**
4803
4804接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4805
4806| 错误码ID | 错误信息 |
4807| -------- | ---------------------------------------- |
4808| 202        |  Called by non-system application.         |
4809| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4810| 14000011       | System inner fail.         |
4811| 14000016       | Operation Not support.         |
4812
4813**示例:**
4814
4815``` ts
4816import { dataSharePredicates } from '@kit.ArkData';
4817
4818async function example() {
4819  try {
4820    console.info('dismissAssets Example')
4821    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4822    predicates.equalTo('user_display_level', 2);
4823    let fetchOptions: photoAccessHelper.FetchOptions = {
4824      fetchColumns: [],
4825      predicates: predicates
4826    };
4827    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.PORTRAIT, fetchOptions);
4828    let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
4829
4830    let predicatesAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4831    let assetFetchOptions: photoAccessHelper.FetchOptions = {
4832      fetchColumns: [],
4833      predicates: predicatesAsset
4834    };
4835    let assetFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(assetFetchOptions);
4836    let asset: photoAccessHelper.PhotoAsset = await assetFetchResult.getFirstObject();
4837
4838    let changeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
4839    changeRequest.dismissAssets([asset]);
4840    await phAccessHelper.applyChanges(changeRequest);
4841  } catch (err) {
4842    console.error(`dismissAssets failed with error: ${err.code}, ${err.message}`);
4843  }
4844}
4845```
4846
4847### mergeAlbum<sup>11+</sup>
4848
4849mergeAlbum(target: Album): void
4850
4851将两个人像相册合并。
4852
4853**系统接口**:此接口为系统接口。
4854
4855**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4856
4857**参数:**
4858
4859| 参数名        | 类型      | 必填   | 说明                                 |
4860| ---------- | ------- | ---- | ---------------------------------- |
4861| target | [Album](#album) | 是    | 需要合并的目标相册,合并相册必须重命名。 |
4862
4863**错误码:**
4864
4865接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4866
4867| 错误码ID | 错误信息 |
4868| -------- | ---------------------------------------- |
4869| 202        |  Called by non-system application.         |
4870| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4871| 14000011       | System inner fail.         |
4872| 14000016       | Operation Not support.         |
4873
4874**示例:**
4875
4876``` ts
4877import { dataSharePredicates } from '@kit.ArkData';
4878
4879async function example() {
4880  try {
4881    console.info('mergeAlbum Example')
4882    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4883    predicates.equalTo('user_display_level', 2);
4884    let fetchOptions: photoAccessHelper.FetchOptions = {
4885      fetchColumns: [],
4886      predicates: predicates
4887    };
4888    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.PORTRAIT, fetchOptions);
4889    let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
4890    if (fetchResult.isAfterLast()) {
4891      console.error('lack of album to merge');
4892      return;
4893    }
4894    let target: photoAccessHelper.Album = await fetchResult.getNextObject();
4895
4896    let changeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
4897    changeRequest.mergeAlbum(target);
4898    changeRequest.setAlbumName("testName");
4899    await phAccessHelper.applyChanges(changeRequest);
4900  } catch (err) {
4901    console.error(`mergeAlbum failed with error: ${err.code}, ${err.message}`);
4902  }
4903}
4904```
4905
4906### placeBefore<sup>11+</sup>
4907
4908placeBefore(album: Album): void;
4909
4910将当前相册排序到目标相册之前。
4911
4912**系统接口**:此接口为系统接口。
4913
4914**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4915
4916**参数:**
4917
4918| 参数名        | 类型      | 必填   | 说明                                 |
4919| ---------- | ------- | ---- | ---------------------------------- |
4920| album | [Album](#album) | 是   |  目标相册。如果要将当前相册排序到末位,则目标相册传入null。 |
4921
4922**错误码:**
4923
4924接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4925
4926| 错误码ID | 错误信息 |
4927| -------- | ---------------------------------------- |
4928| 202      |  Called by non-system application.         |
4929| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4930| 14000011       | System inner fail.         |
4931
4932**示例:**
4933
4934```ts
4935async function example() {
4936  console.info('placeBeforeDemo');
4937  try {
4938    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
4939    let firstAlbum: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
4940    if (albumFetchResult.isAfterLast()) {
4941      console.error('lack of album to place before');
4942      return;
4943    }
4944    let secondAlbum: photoAccessHelper.Album = await albumFetchResult.getNextObject();
4945    let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(secondAlbum);
4946    albumChangeRequest.placeBefore(firstAlbum);
4947    await phAccessHelper.applyChanges(albumChangeRequest);
4948    console.info('placeBefore successfully');
4949  } catch (err) {
4950    console.error(`placeBeforeDemo failed with error: ${err.code}, ${err.message}`);
4951  }
4952}
4953```
4954
4955## HighlightAlbum<sup>12+</sup>
4956
4957时刻相册。
4958
4959**系统接口**:此接口为系统接口。
4960
4961**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4962
4963### constructor<sup>12+</sup>
4964
4965constructor(album: Album)
4966
4967构造函数。
4968
4969**系统接口**:此接口为系统接口。
4970
4971**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4972
4973**参数:**
4974
4975| 参数名   | 类型                      | 必填 | 说明       |
4976| -------- | ------------------------- | ---- | ---------- |
4977| album | [Album](#album) | 是   | 智慧相册。 |
4978
4979**错误码:**
4980
4981接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4982
4983| 错误码ID | 错误信息 |
4984| -------- | ---------------------------------------- |
4985| 202      |  Called by non-system application.   |
4986| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
4987| 14000011 | Internal system error.            |
4988
4989**示例:**
4990
4991```ts
4992import { dataSharePredicates } from '@kit.ArkData';
4993
4994async function example() {
4995  console.info('HighlightAlbum constructorDemo');
4996  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4997  let fetchOption: photoAccessHelper.FetchOptions = {
4998    fetchColumns: [],
4999    predicates: predicates
5000  };
5001  let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await photoAccessHelper.getAlbums(
5002    photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.HIGHLIGHT, fetchOption);
5003  let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
5004  let highlightAlbum: photoAccessHelper.HighlightAlbum = new photoAccessHelper.HighlightAlbum(album);
5005  albumFetchResult.close();
5006}
5007```
5008
5009### getHighlightAlbumInfo<sup>12+</sup>
5010
5011getHighlightAlbumInfo(type: HighlightAlbumInfoType): Promise&lt;string&gt;
5012
5013获取指定时刻相册的特定信息。
5014
5015**系统接口**:此接口为系统接口。
5016
5017**需要权限**:ohos.permission.READ\_IMAGEVIDEO
5018
5019**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5020
5021**参数:**
5022
5023| 参数名        | 类型      | 必填   | 说明                                 |
5024| ---------- | ------- | ---- | ---------------------------------- |
5025| type       | [HighlightAlbumInfoType](#highlightalbuminfotype12) | 是    | 需要获取的时刻相册信息类型。 |
5026
5027**错误码:**
5028
5029接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
5030
5031| 错误码ID    | 错误信息                              |
5032| :------- | :-------------------------------- |
5033| 201      | Permission denied.                |
5034| 202      | Called by non-system application. |
5035| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
5036| 14000011 | Internal system error.            |
5037
5038**示例:**
5039
5040```ts
5041import { dataSharePredicates } from '@kit.ArkData';
5042
5043async function example() {
5044  try {
5045    console.info('getHighlightAlbumInfoDemo')
5046    let fetchOptions: photoAccessHelper.FetchOptions = {
5047      fetchColumns: [],
5048      predicates: new dataSharePredicates.DataSharePredicates()
5049    }
5050    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await photoAccessHelper.getAlbums(
5051    photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.HIGHLIGHT, fetchOption);
5052    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();、
5053    if (album != undefined) {
5054      let highlightAlbum: photoAccessHelper.HighlightAlbum = new photoAccessHelper.HighlightAlbum(album);
5055      let coverInfo: string = await highlightAlbum.getHighlightAlbumInfo(
5056        photoAccessHelper.HighlightAlbumInfoType.COVER_INFO);
5057      console.info('get cover info result: ' + JSON.stringify(coverInfo));
5058    }
5059
5060    albumFetchResult.close();
5061  } catch (err) {
5062    console.error(`getHighlightAlbumInfoDemofailed with error: ${err.code}, ${err.message}`);
5063  }
5064}
5065```
5066
5067### getHighlightResource<sup>12+</sup>
5068
5069getHighlightResource(resourceUri: string): Promise&lt;ArrayBuffer&gt;
5070
5071获取指定时刻缓存资源的ArrayBuffer。
5072
5073**系统接口**:此接口为系统接口。
5074
5075**需要权限**:ohos.permission.READ\_IMAGEVIDEO
5076
5077**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5078
5079**参数:**
5080
5081| 参数名        | 类型      | 必填   | 说明                                 |
5082| ---------- | ------- | ---- | ---------------------------------- |
5083| resourceUri       | string | 是    | 指定时刻缓存资源uri。 |
5084
5085**错误码:**
5086
5087接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
5088
5089| 错误码ID    | 错误信息                              |
5090| :------- | :-------------------------------- |
5091| 201      | Permission denied.                |
5092| 202      | Called by non-system application. |
5093| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
5094| 14000011 | Internal system error.            |
5095
5096**示例:**
5097
5098```ts
5099import { dataSharePredicates } from '@kit.ArkData';
5100
5101async function example() {
5102  try {
5103    console.info('getHighlightResourceDemo')
5104    let fetchOptions: photoAccessHelper.FetchOptions = {
5105      fetchColumns: [],
5106      predicates: new dataSharePredicates.DataSharePredicates()
5107    }
5108    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await photoAccessHelper.getAlbums(
5109    photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.HIGHLIGHT, fetchOption);
5110    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();、
5111    if (album != undefined) {
5112      let highlightAlbum: photoAccessHelper.HighlightAlbum = new photoAccessHelper.HighlightAlbum(album);
5113      let uri: string = 'file://media/highlight/cover/10/1_1/background.png?oper=highlight'
5114      let arrayBuffer: ArrayBuffer = await highlightAlbum.getHighlightResource(uri);
5115    }
5116    albumFetchResult.close();
5117  } catch (err) {
5118    console.error(`getHighlightResourceDemofailed with error: ${err.code}, ${err.message}`);
5119  }
5120}
5121```
5122
5123### setHighlightUserActionData<sup>12+</sup>
5124
5125setHighlightUserActionData(type: HighlightUserActionType, actionData: number): Promise&lt;void&gt;
5126
5127设置指定时刻用户行为数据。
5128
5129**系统接口**:此接口为系统接口。
5130
5131**需要权限**:ohos.permission.WRITE\_IMAGEVIDEO
5132
5133**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5134
5135**参数:**
5136
5137| 参数名        | 类型      | 必填   | 说明                                 |
5138| ---------- | ------- | ---- | ---------------------------------- |
5139| type       | [HighlightUserActionType](#highlightuseractiontype12) | 是    | 需要设置的用户行为数据类型。 |
5140| actionData | number | 是    | 行为数据。 |
5141
5142**错误码:**
5143
5144接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
5145
5146| 错误码ID    | 错误信息                              |
5147| :------- | :-------------------------------- |
5148| 201      | Permission denied.                |
5149| 202      | Called by non-system application. |
5150| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
5151| 14000011 | Internal system error.            |
5152
5153**示例:**
5154
5155```ts
5156import { dataSharePredicates } from '@kit.ArkData';
5157
5158async function example() {
5159  try {
5160    console.info('setHighlightUserActionDataDemo')
5161    let fetchOptions: photoAccessHelper.FetchOptions = {
5162      fetchColumns: [],
5163      predicates: new dataSharePredicates.DataSharePredicates()
5164    }
5165    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await photoAccessHelper.getAlbums(
5166    photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.HIGHLIGHT, fetchOption);
5167    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();、
5168    if (album != undefined) {
5169      let highlightAlbum: photoAccessHelper.HighlightAlbum = new photoAccessHelper.HighlightAlbum(album);
5170      highlightAlbum.setHighlightUserActionData(photoAccessHelper.HighlightUserActionType.INSERTED_PIC_COUNT, 1);
5171    }
5172    albumFetchResult.close();
5173  } catch (err) {
5174    console.error(`setHighlightUserActionDataDemofailed with error: ${err.code}, ${err.message}`);
5175  }
5176}
5177```
5178
5179### setVideoEnhancementAttr<sup>13+</sup>
5180
5181setVideoEnhancementAttr(videoEnhancementType: VideoEnhancementType, photoId: string): Promise&lt;void&gt;
5182
5183**系统接口**:此接口为系统接口。
5184
5185**需要权限**:ohos.permission.WRITE\_IMAGEVIDEO
5186
5187**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5188
5189**参数:**
5190
5191| 参数名        | 类型      | 必填   | 说明                                 |
5192| ---------- | ------- | ---- | ---------------------------------- |
5193| videoEnhancementType       | [VideoEnhancementType](#videoenhancementtype13) | 是    | 需要进行分段式视频的处理类型。 |
5194| photoId | string | 是    | 图片的photoId。 |
5195
5196**错误码:**
5197
5198接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
5199
5200| 错误码ID    | 错误信息                              |
5201| :------- | :-------------------------------- |
5202| 202      | Called by non-system application. |
5203| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
5204| 14000011 | Internal system error.            |
5205| 14000016 | Operation Not Support.            |
5206
5207**示例:**
5208
5209```ts
5210async function example(asset: photoAccessHelper.PhotoAsset) {
5211  try {
5212    let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
5213    let photoId = "202410011800";
5214    assetChangeRequest.setVideoEnhancementAttr(photoAccessHelper.VideoEnhancementType.QUALITY_ENHANCEMENT_LOCAL, photoId);
5215    await phAccessHelper.applyChanges(assetChangeRequest);
5216  } catch (err) {
5217    console.error(`setVideoEnhancementAttr fail with error: ${err.code}, ${err.message}`);
5218  }
5219}
5220```
5221
5222### dismiss<sup>13+</sup>
5223
5224dismiss(): void
5225
5226删除合影相册。
5227
5228**系统接口**:此接口为系统接口。
5229
5230**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5231
5232**错误码:**
5233
5234接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
5235
5236| 错误码ID    | 错误信息                              |
5237| :------- | :-------------------------------- |
5238| 202      | Called by non-system application. |
5239| 401 | Parameter error. Possible causes: Incorrect parameter types. |
5240| 14000011 | System inner fail.            |
5241
5242**示例:**
5243
5244```ts
5245import { dataSharePredicates } from '@kit.ArkData';
5246
5247async function example() {
5248  console.info('dismissDemo');
5249  try {
5250    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.GROUP_PHOTO);
5251    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
5252
5253    let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
5254    albumChangeRequest.dismiss();
5255    await phAccessHelper.applyChanges(albumChangeRequest);
5256    console.info('dismiss successfully');
5257  } catch (err) {
5258    console.error(`dismissDemo failed with error: ${err.code}, ${err.message}`);
5259  }
5260}
5261```
5262
5263## CloudEnhancement<sup>13+</sup>
5264
5265云增强管理类,该类用于生成AI云增强照片任务的管理、获取原照片与AI云增强照片的关联关系。
5266
5267**系统接口**:此接口为系统接口。
5268
5269**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5270
5271### getCloudEnhancementInstance<sup>13+</sup>
5272
5273static getCloudEnhancementInstance(context: Context): CloudEnhancement
5274
5275获取云增强类实例。
5276
5277**系统接口**:此接口为系统接口。
5278
5279**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5280
5281**参数:**
5282
5283| 参数名   | 类型                      | 必填 | 说明       |
5284| -------- | ------------------------- | ---- | ---------- |
5285| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是   | 传入Ability实例的Context。 |
5286
5287**错误码:**
5288
5289接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
5290
5291| 错误码ID | 错误信息 |
5292| -------- | ---------------------------------------- |
5293| 202      |  Called by non-system application.   |
5294| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
5295| 14000011 | Internal system error.            |
5296
5297**示例:**
5298
5299```ts
5300import { dataSharePredicates } from '@kit.ArkData';
5301
5302async function example() {
5303  console.info('getCloudEnhancementInstanceDemo');
5304  let photoPredicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
5305  let photoFetchOptions: photoAccessHelper.FetchOptions = {
5306    fetchColumns: [],
5307    predicates: photoPredicates
5308  };
5309  let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
5310  try {
5311    let fetchResult = await phAccessHelper.getAssets(photoFetchOptions);
5312    let asset = await fetchResult.getLastObject();
5313    let cloudEnhancementInstance: photoAccessHelper.CloudEnhancement
5314      = photoAccessHelper.CloudEnhancement.getCloudEnhancementInstance(context);
5315    let hasCloudWatermark = true;
5316    await cloudEnhancementInstance.submitCloudEnhancementTasks([asset], hasCloudWatermark);
5317  } catch (err) {
5318    console.error(`getCloudEnhancementInstanceDemo failed with error: ${err.code}, ${err.message}`);
5319  }
5320}
5321```
5322
5323### submitCloudEnhancementTasks<sup>13+</sup>
5324
5325submitCloudEnhancementTasks(photoAssets: Array&lt;PhotoAsset&gt;, hasCloudWatermark: boolean): Promise&lt;void&gt;
5326
5327提交云增强任务。
5328
5329**系统接口**:此接口为系统接口。
5330
5331**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5332
5333**参数:**
5334
5335| 参数名   | 类型                      | 必填 | 说明       |
5336| -------- | ------------------------- | ---- | ---------- |
5337| photoAssets | Array<[PhotoAsset](#photoasset)> | 是   | 需要增强照片的[PhotoAsset](#photoasset)集合。 |
5338| hasCloudWatermark | boolean | 是   | 增强后图片是否添加云增强水印。 |
5339
5340**错误码:**
5341
5342接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
5343
5344| 错误码ID | 错误信息 |
5345| -------- | ---------------------------------------- |
5346| 201      | Permission denied.                |
5347| 202      | Called by non-system application. |
5348| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
5349| 14000011 | Internal system error.            |
5350
5351**示例:**
5352
5353```ts
5354import { dataSharePredicates } from '@kit.ArkData';
5355
5356async function example() {
5357  console.info('submitCloudEnhancementTasksDemo');
5358  let photoPredicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
5359  let photoFetchOptions: photoAccessHelper.FetchOptions = {
5360    fetchColumns: [],
5361    predicates: photoPredicates
5362  };
5363  let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
5364  try {
5365    let fetchResult = await phAccessHelper.getAssets(photoFetchOptions);
5366    let asset = await fetchResult.getLastObject();
5367    let cloudEnhancementInstance: photoAccessHelper.CloudEnhancement
5368      = photoAccessHelper.CloudEnhancement.getCloudEnhancementInstance(context);
5369    let hasCloudWatermark = true;
5370    await cloudEnhancementInstance.submitCloudEnhancementTasks([asset], hasCloudWatermark);
5371  } catch (err) {
5372    console.error(`submitCloudEnhancementTasksDemo failed with error: ${err.code}, ${err.message}`);
5373  }
5374}
5375```
5376
5377### prioritizeCloudEnhancementTask<sup>13+</sup>
5378
5379prioritizeCloudEnhancementTask(photoAsset: PhotoAsset): Promise&lt;void&gt;
5380
5381提升指定云增强任务的优先级。
5382
5383**系统接口**:此接口为系统接口。
5384
5385**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5386
5387**参数:**
5388
5389| 参数名   | 类型                      | 必填 | 说明       |
5390| -------- | ------------------------- | ---- | ---------- |
5391| photoAsset | [PhotoAsset](#photoasset) | 是   | 需要修改云增强优先级照片的[PhotoAsset](#photoasset)。 |
5392
5393**错误码:**
5394
5395接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
5396
5397| 错误码ID | 错误信息 |
5398| -------- | ---------------------------------------- |
5399| 201      | Permission denied.                |
5400| 202      | Called by non-system application. |
5401| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
5402| 14000011 | Internal system error.            |
5403
5404**示例:**
5405
5406```ts
5407import { dataSharePredicates } from '@kit.ArkData';
5408
5409async function example() {
5410  console.info('prioritizeCloudEnhancementTaskDemo');
5411  let photoPredicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
5412  // 查询进行中的云增强任务
5413  photoPredicates.equalTo(photoAccessHelper.PhotoKeys.CE_AVAILABLE, 2);
5414  let photoFetchOptions: photoAccessHelper.FetchOptions = {
5415    fetchColumns: [],
5416    predicates: photoPredicates
5417  };
5418  let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
5419  try {
5420    let fetchResult = await phAccessHelper.getAssets(photoFetchOptions);
5421    let asset = await fetchResult.getLastObject();
5422    let cloudEnhancementInstance: photoAccessHelper.CloudEnhancement
5423      = photoAccessHelper.CloudEnhancement.getCloudEnhancementInstance(context);
5424    let hasCloudWatermark = true;
5425    await cloudEnhancementInstance.prioritizeCloudEnhancementTask(asset);
5426  } catch (err) {
5427    console.error(`prioritizeCloudEnhancementTaskDemo failed with error: ${err.code}, ${err.message}`);
5428  }
5429}
5430```
5431
5432### cancelCloudEnhancementTasks<sup>13+</sup>
5433
5434cancelCloudEnhancementTasks(photoAssets: Array&lt;PhotoAsset&gt;): Promise&lt;void&gt;
5435
5436取消指定云增强任务。
5437
5438**系统接口**:此接口为系统接口。
5439
5440**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5441
5442**参数:**
5443
5444| 参数名   | 类型                      | 必填 | 说明       |
5445| -------- | ------------------------- | ---- | ---------- |
5446| photoAssets | Array<[PhotoAsset](#photoasset)> | 是   | 需要取消云增强任务的[PhotoAsset](#photoasset)集合。 |
5447
5448**错误码:**
5449
5450接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
5451
5452| 错误码ID | 错误信息 |
5453| -------- | ---------------------------------------- |
5454| 201      | Permission denied.                |
5455| 202      | Called by non-system application. |
5456| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
5457| 14000011 | Internal system error.            |
5458
5459**示例:**
5460
5461```ts
5462import { dataSharePredicates } from '@kit.ArkData';
5463
5464async function example() {
5465  console.info('cancelCloudEnhancementTasksDemo');
5466  let photoPredicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
5467  // 查询进行中的云增强任务
5468  photoPredicates.equalTo(photoAccessHelper.PhotoKeys.CE_AVAILABLE, 2);
5469  let photoFetchOptions: photoAccessHelper.FetchOptions = {
5470    fetchColumns: [],
5471    predicates: photoPredicates
5472  };
5473  let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
5474  try {
5475    let fetchResult = await phAccessHelper.getAssets(photoFetchOptions);
5476    let asset = await fetchResult.getLastObject();
5477    let cloudEnhancementInstance: photoAccessHelper.CloudEnhancement
5478      = photoAccessHelper.CloudEnhancement.getCloudEnhancementInstance(context);
5479    await cloudEnhancementInstance.cancelCloudEnhancementTasks([asset]);
5480  } catch (err) {
5481    console.error(`cancelCloudEnhancementTasksDemo failed with error: ${err.code}, ${err.message}`);
5482  }
5483}
5484```
5485
5486### cancelAllCloudEnhancementTasks<sup>13+</sup>
5487
5488cancelAllCloudEnhancementTasks(): Promise&lt;void&gt;
5489
5490取消全部云增强任务。
5491
5492**系统接口**:此接口为系统接口。
5493
5494**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5495
5496**错误码:**
5497
5498接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
5499
5500| 错误码ID | 错误信息 |
5501| -------- | ---------------------------------------- |
5502| 201      | Permission denied.                |
5503| 202      | Called by non-system application. |
5504| 14000011 | Internal system error.            |
5505
5506**示例:**
5507
5508```ts
5509import { dataSharePredicates } from '@kit.ArkData';
5510
5511async function example() {
5512  console.info('cancelAllCloudEnhancementTasksDemo');
5513  try {
5514    let cloudEnhancementInstance: photoAccessHelper.CloudEnhancement
5515      = photoAccessHelper.CloudEnhancement.getCloudEnhancementInstance(context);
5516    await cloudEnhancementInstance.cancelCloudEnhancementTasks();
5517  } catch (err) {
5518    console.error(`cancelAllCloudEnhancementTasksDemo failed with error: ${err.code}, ${err.message}`);
5519  }
5520}
5521```
5522
5523### queryCloudEnhancementTaskState<sup>13+</sup>
5524
5525queryCloudEnhancementTaskState(photoAsset: PhotoAsset): Promise&lt;CloudEnhancementTaskState&gt;
5526
5527查询云增强任务信息。
5528
5529**系统接口**:此接口为系统接口。
5530
5531**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5532
5533**参数:**
5534
5535| 参数名   | 类型                      | 必填 | 说明       |
5536| -------- | ------------------------- | ---- | ---------- |
5537| photoAsset | [PhotoAsset](#photoasset) | 是   | 需要查询云增强任务信息的[PhotoAsset](#photoasset)。 |
5538
5539**错误码:**
5540
5541接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
5542
5543| 错误码ID | 错误信息 |
5544| -------- | ---------------------------------------- |
5545| 201      | Permission denied.                |
5546| 202      | Called by non-system application. |
5547| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
5548| 14000011 | Internal system error.            |
5549
5550**示例:**
5551
5552```ts
5553import { dataSharePredicates } from '@kit.ArkData';
5554
5555async function example() {
5556  console.info('queryCloudEnhancementTaskStateDemo');
5557  let photoPredicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
5558  // 查询进行中的云增强任务
5559  photoPredicates.equalTo(photoAccessHelper.PhotoKeys.CE_AVAILABLE, 2);
5560  let photoFetchOptions: photoAccessHelper.FetchOptions = {
5561    fetchColumns: [],
5562    predicates: photoPredicates
5563  };
5564  let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
5565  try {
5566    let fetchResult = await phAccessHelper.getAssets(photoFetchOptions);
5567    let asset = await fetchResult.getLastObject();
5568    let cloudEnhancementInstance: photoAccessHelper.CloudEnhancement
5569      = photoAccessHelper.CloudEnhancement.getCloudEnhancementInstance(context);
5570    const cloudEnhancementTaskState: photoAccessHelper.CloudEnhancementTaskState
5571      = await cloudEnhancementInstance.queryCloudEnhancementTaskState(asset);
5572    let taskStage = cloudEnhancementTaskState.taskStage;
5573    if (taskStage == photoAccessHelper.CloudEnhancementTaskStage.TASK_STAGE_EXCEPTION) {
5574      console.log("task has exception");
5575    } else if (taskStage == photoAccessHelper.CloudEnhancementTaskStage.TASK_STAGE_PREPARING) {
5576      console.log("task is preparing");
5577    } else if (taskStage == photoAccessHelper.CloudEnhancementTaskStage.TASK_STAGE_UPLOADING) {
5578      let transferredFileSize = cloudEnhancementTaskState.transferredFileSize;
5579      let totalFileSize = cloudEnhancementTaskState.totalFileSize;
5580      let message = `task is uploading, transferredFileSize: ${transferredFileSize}, totalFileSize: ${totalFileSize}`;
5581      console.log(message);
5582    } else if (taskStage == photoAccessHelper.CloudEnhancementTaskStage.TASK_STAGE_EXECUTING) {
5583      let expectedDuration = cloudEnhancementTaskState.expectedDuration;
5584      let message = `task is executing, expectedDuration: ${expectedDuration}`;
5585      console.log(message);
5586    } else if (taskStage == photoAccessHelper.CloudEnhancementTaskStage.TASK_STAGE_DOWNLOADING) {
5587      let transferredFileSize = cloudEnhancementTaskState.transferredFileSize;
5588      let totalFileSize = cloudEnhancementTaskState.totalFileSize;
5589      let message = `task is downloading, transferredFileSize: ${transferredFileSize}, totalFileSize: ${totalFileSize}`;
5590      console.log(message);
5591    } else if (taskStage == photoAccessHelper.CloudEnhancementTaskStage.TASK_STAGE_FAILED) {
5592      let errCode = cloudEnhancementTaskState.statusCode;
5593      let message = `task is failed, errCode: ${errCode}`;
5594      console.log(message);
5595    } else if (taskStage == photoAccessHelper.CloudEnhancementTaskStage.TASK_STAGE_COMPLETED) {
5596      console.log("task is completed");
5597    }
5598  } catch (err) {
5599    console.error(`queryCloudEnhancementTaskStateDemo failed with error: ${err.code}, ${err.message}`);
5600  }
5601}
5602```
5603
5604### syncCloudEnhancementTaskStatus<sup>13+</sup>
5605
5606syncCloudEnhancementTaskStatus(): Promise&lt;void&gt;
5607
5608同步云增强任务状态。
5609
5610**系统接口**:此接口为系统接口。
5611
5612**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5613
5614**错误码:**
5615
5616接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
5617
5618| 错误码ID | 错误信息 |
5619| -------- | ---------------------------------------- |
5620| 201      | Permission denied.                |
5621| 202      | Called by non-system application. |
5622| 14000011 | Internal system error.            |
5623
5624**示例:**
5625
5626```ts
5627import { dataSharePredicates } from '@kit.ArkData';
5628
5629async function example() {
5630  console.info('syncCloudEnhancementTaskStatusDemo');
5631  try {
5632    let cloudEnhancementInstance: photoAccessHelper.CloudEnhancement
5633      = photoAccessHelper.CloudEnhancement.getCloudEnhancementInstance(context);
5634    await cloudEnhancementInstance.syncCloudEnhancementTaskStatus();
5635  } catch (err) {
5636    console.error(`syncCloudEnhancementTaskStatusDemo failed with error: ${err.code}, ${err.message}`);
5637  }
5638}
5639```
5640
5641### getCloudEnhancementPair<sup>13+</sup>
5642
5643getCloudEnhancementPair(asset: PhotoAsset): Promise&lt;PhotoAsset&gt;
5644
5645查询云增强配对照片。
5646
5647**系统接口**:此接口为系统接口。
5648
5649**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5650
5651**参数:**
5652
5653| 参数名   | 类型                      | 必填 | 说明       |
5654| -------- | ------------------------- | ---- | ---------- |
5655| photoAsset | [PhotoAsset](#photoasset) | 是   | 需要修改云增强优先级照片的[PhotoAsset](#photoasset)。 |
5656
5657**错误码:**
5658
5659接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
5660
5661| 错误码ID | 错误信息 |
5662| -------- | ---------------------------------------- |
5663| 201      | Permission denied.                |
5664| 202      | Called by non-system application. |
5665| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
5666| 14000011 | Internal system error.            |
5667
5668**示例:**
5669
5670```ts
5671import { dataSharePredicates } from '@kit.ArkData';
5672
5673async function example() {
5674  console.info('getCloudEnhancementPairDemo');
5675  let photoPredicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
5676  // 查询已完成的云增强任务
5677  photoPredicates.equalTo(photoAccessHelper.PhotoKeys.CE_AVAILABLE, 5);
5678  let photoFetchOptions: photoAccessHelper.FetchOptions = {
5679    fetchColumns: [],
5680    predicates: photoPredicates
5681  };
5682  let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
5683  try {
5684    let fetchResult = await phAccessHelper.getAssets(photoFetchOptions);
5685    let asset = await fetchResult.getLastObject();
5686    let cloudEnhancementInstance: photoAccessHelper.CloudEnhancement
5687      = photoAccessHelper.CloudEnhancement.getCloudEnhancementInstance(context);
5688    let photoAsset: photoAccessHelper.PhotoAsset
5689      = await cloudEnhancementInstance.getCloudEnhancementPair(asset);
5690  } catch (err) {
5691    console.error(`getCloudEnhancementPairDemo failed with error: ${err.code}, ${err.message}`);
5692  }
5693}
5694```
5695
5696### getFaceId<sup>13+</sup>
5697
5698getFaceId(): Promise\<string>
5699
5700获取人像相册或合影相册的封面人脸标识。
5701
5702**系统接口**:此接口为系统接口。
5703
5704**需要权限**:ohos.permission.READ\_IMAGEVIDEO
5705
5706**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5707
5708**返回值:**
5709
5710| 类型                | 说明                                |
5711| :------------------ | :---------------------------------- |
5712| Promise&lt;string&gt; | Promise对象,人像相册返回tag_id,合影相册返回group_tag,未找到返回空字符串。 |
5713
5714**错误码:**
5715
5716接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
5717
5718| 错误码ID | 错误信息                                                     |
5719| :------- | :----------------------------------------------------------- |
5720| 201      | Permission denied.                                           |
5721| 202      | Called by non-system application.                            |
5722| 14000011 | Internal system error                                        |
5723
5724**示例:**
5725
5726```ts
5727import { dataSharePredicates } from '@kit.ArkData';
5728
5729async function example() {
5730  try {
5731    console.info('getFaceIdDemo');
5732    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
5733    predicates.equalTo("user_display_level", 1);
5734    let fetchOptions: photoAccessHelper.FetchOptions = {
5735      fetchColumns: [],
5736      predicates: predicates
5737    };
5738    let fetchResult =
5739      await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.PORTRAIT,
5740        fetchOptions);
5741    let album = await fetchResult?.getFirstObject();
5742    let faceId = await album?.getFaceId();
5743    console.info(`getFaceId successfully, faceId: ${faceId}`);
5744    fetchResult.close();
5745  } catch (err) {
5746    console.error(`getFaceId failed with err: ${err.code}, ${err.message}`);
5747  }
5748}
5749```
5750
5751## PhotoSubtype
5752
5753枚举,不同[PhotoAsset](#photoasset)的类型。
5754
5755**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5756
5757| 名称  |  值 |  说明 |
5758| ----- |  ---- |  ---- |
5759| SCREENSHOT |  1 |  截屏录屏文件类型。**系统接口**:此接口为系统接口。 |
5760
5761## PositionType
5762
5763枚举,文件位置,表示文件在本地或云端。
5764
5765**系统接口**:此接口为系统接口。
5766
5767**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5768
5769| 名称  |  值 |  说明 |
5770| ----- |  ---- |  ---- |
5771| LOCAL |  1 << 0 |  文件只存在于本端设备。 |
5772| CLOUD |  1 << 1 |  文件只存在于云端。 |
5773
5774## AlbumType
5775
5776枚举,相册类型,表示是用户相册还是系统预置相册。
5777
5778**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5779
5780| 名称                  | 值    | 说明                        |
5781| ------------------- | ---- | ------------------------- |
5782| SMART<sup>11+</sup> | 4096 | 智慧分析相册。**系统接口**:此接口为系统接口。 |
5783
5784## AlbumSubtype
5785
5786枚举,相册子类型,表示具体的相册类型。
5787
5788**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5789
5790| 名称                                | 值          | 说明                              |
5791| --------------------------------- | ---------- | ------------------------------- |
5792| HIDDEN                            | 1027       | 隐藏相册。**系统接口**:此接口为系统接口。         |
5793| TRASH                             | 1028       | 回收站。**系统接口**:此接口为系统接口。          |
5794| SCREENSHOT                        | 1029       | 截屏和录屏相册。**系统接口**:此接口为系统接口。      |
5795| CAMERA                            | 1030       | 相机拍摄的照片和视频相册。**系统接口**:此接口为系统接口。 |
5796| SOURCE\_GENERIC<sup>11+</sup>     | 2049       | 来源相册。**系统接口**:此接口为系统接口。         |
5797| CLASSIFY<sup>11+</sup>            | 4097       | 分类相册。**系统接口**:此接口为系统接口。         |
5798| GEOGRAPHY\_LOCATION<sup>11+</sup> | 4099       | 地图相册。**系统接口**:此接口为系统接口。         |
5799| GEOGRAPHY\_CITY<sup>11+</sup>     | 4100       | 城市相册。**系统接口**:此接口为系统接口。         |
5800| SHOOTING\_MODE<sup>11+</sup>      | 4101       | 拍摄模式相册。**系统接口**:此接口为系统接口。       |
5801| PORTRAIT<sup>11+</sup>            | 4102       | 人像相册。**系统接口**:此接口为系统接口。         |
5802| HIGHLIGHT<sup>12+</sup>           | 4104       | 时刻相册。**系统接口**:此接口为系统接口。         |
5803| HIGHLIGHT_SUGGESTIONS<sup>12+</sup> | 4105     | 时刻建议相册。**系统接口**:此接口为系统接口。         |
5804| CLOUD_ENHANCEMENT<sup>13+</sup> | 1032     | AI云增强相册。**系统接口**:此接口为系统接口。         |
5805| GROUP_PHOTO<sup>13+</sup>         | 4103       | 合影相册。**系统接口**:此接口为系统接口。         |
5806
5807## RequestPhotoType<sup>11+</sup>
5808
5809枚举,获取图片或视频缩略图的操作类型。
5810
5811**系统接口**:此接口为系统接口。
5812
5813**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5814
5815| 名称  |  值 |  说明 |
5816| ----- |  ---- |  ---- |
5817| REQUEST_ALL_THUMBNAILS  |  0 |  即获取快速缩略图,又获取质量缩略图。 |
5818| REQUEST_FAST_THUMBNAIL |  1 |  只获取快速缩略图。 |
5819| REQUEST_QUALITY_THUMBNAIL |  2 |  只获取质量缩略图。 |
5820
5821## PhotoKeys
5822
5823枚举,图片和视频文件关键信息。
5824
5825**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5826
5827| 名称          | 值              | 说明                                                       |
5828| ------------- | ------------------- | ---------------------------------------------------------- |
5829| POSITION  | 'position'            | 文件位置类型。**系统接口**:此接口为系统接口。                               |
5830| DATE_TRASHED  | 'date_trashed'  | 删除日期(删除文件时间距1970年1月1日的秒数值)。**系统接口**:此接口为系统接口。                 |
5831| HIDDEN  | 'hidden'            | 文件的隐藏状态。**系统接口**:此接口为系统接口。                               |
5832| CAMERA_SHOT_KEY  | 'camera_shot_key'  | 锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。**系统接口**:此接口为系统接口。            |
5833| USER_COMMENT<sup>10+</sup>  | 'user_comment'            | 用户注释信息。**系统接口**:此接口为系统接口。           |
5834| DATE_YEAR<sup>11+</sup>  | 'date_year'            | 创建文件的年份。**系统接口**:此接口为系统接口。           |
5835| DATE_MONTH<sup>11+</sup>  | 'date_month'            | 创建文件的月份。**系统接口**:此接口为系统接口。           |
5836| DATE_DAY<sup>11+</sup>  | 'date_day'            | 创建文件的日期。**系统接口**:此接口为系统接口。           |
5837| PENDING<sup>11+</sup>  | 'pending'            | pending状态。**系统接口**:此接口为系统接口。           |
5838| DATE_TRASHED_MS<sup>12+</sup>  | 'date_trashed_ms'  | 删除日期(删除文件时间距1970年1月1日的毫秒数值)。**系统接口**:此接口为系统接口。<br>注意:查询照片时,不支持基于该字段排序。 |
5839| MOVING_PHOTO_EFFECT_MODE<sup>12+</sup>  | 'moving_photo_effect_mode' | 动态照片效果模式。**系统接口**:此接口为系统接口。 |
5840| CE_AVAILABLE<sup>13+</sup>  | 'ce_available' | 云增强任务标识。**系统接口**:此接口为系统接口。 |
5841
5842## HiddenPhotosDisplayMode<sup>11+</sup>
5843
5844枚举,系统中隐藏文件显示模式。
5845
5846**系统接口**:此接口为系统接口。
5847
5848**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5849
5850| 名称          | 值              | 说明                                                       |
5851| ------------- | ------------------- | ---------------------------------------------------------- |
5852| ASSETS_MODE   | 0       | 按系统预置的隐藏相册显示隐藏文件,即显示系统中所有的隐藏文件。    |
5853| ALBUMS_MODE    | 1    | 按相册显示隐藏文件(即显示系统中所有包含隐藏文件的相册,除系统预置的隐藏相册本身和回收站相册以外)。  |
5854
5855## PhotoCreateOptions
5856
5857图片或视频的创建选项。
5858
5859**系统接口**:此接口为系统接口。
5860
5861**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5862
5863| 名称                   | 类型                | 必填 | 说明                                              |
5864| ---------------------- | ------------------- | ---- | ------------------------------------------------ |
5865| subtype           | [PhotoSubtype](#photosubtype) | 否  | 图片或者视频的子类型。  |
5866| cameraShotKey           | string | 否  | 锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。   |
5867
5868## RequestPhotoOptions<sup>11+</sup>
5869
5870获取图片或视频缩略图的选项。
5871
5872**系统接口**:此接口为系统接口。
5873
5874**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5875
5876| 名称                   | 类型                | 必填 | 说明                                              |
5877| ---------------------- | ------------------- | ---- | ------------------------------------------------ |
5878| size           | [image.Size](../apis-image-kit/js-apis-image.md#size) | 否  | 获取缩略图的尺寸。  |
5879| requestPhotoType    | [RequestPhotoType](#requestphototype11) | 否  | 获取的操作类型。  |
5880
5881## RequestOptions<sup>11+</sup>
5882
5883请求策略。
5884
5885**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5886
5887| 名称                   | 类型                              | 可读 | 可写 | 说明                                              |
5888| ---------------------- |---------------------------------| ---- |---- | ------------------------------------------------ |
5889| sourceMode           | [SourceMode](#sourcemode11)     | 是   | 是   | 资源文件的读取类型,可以指定当前请求获取的是源文件,或是编辑后的文件。**系统接口**:此接口为系统接口。 |
5890
5891## PhotoProxy<sup>11+</sup>
5892
5893照片代理,相机应用通过该对象写入图片数据。
5894
5895**系统接口**:此接口为系统接口。
5896
5897**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5898
5899## MediaChangeRequest<sup>11+</sup>
5900
5901媒体变更请求,资产变更请求和相册变更请求的父类型。
5902
5903**注意**:媒体变更请求需要在调用[applyChanges](js-apis-photoAccessHelper.md#applychanges11)后才会提交生效。
5904
5905**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5906
5907## FormInfo<sup>11+</sup>
5908
5909图库卡片相关信息。
5910
5911**系统接口**:此接口为系统接口。
5912
5913**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5914
5915| 名称                   | 类型                | 必填 | 说明                                              |
5916| ---------------------- | ------------------- | ---- | ------------------------------------------------ |
5917|formId       |string  |是 | 卡片的ID,由图库创建卡片时提供。 |
5918|uri          |string  |是 | 卡片绑定的图片的uri。创建卡片时uri可为空或图片的uri,移除卡片时uri不做校验,传空即可。  |
5919
5920## ResourceType<sup>11+</sup>
5921
5922枚举,写入资源的类型。
5923
5924**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5925
5926| 名称  |  值 |  说明 |
5927| ----- |  ---- |  ---- |
5928| PHOTO_PROXY |  3 |  表示照片代理资源。**系统接口**:此接口为系统接口。 |
5929| PRIVATE_MOVING_PHOTO_RESOURCE<sup>13+</sup> |  4 |  表示私有动态照片资源。**系统接口**:此接口为系统接口。 |
5930
5931## DefaultChangeUri
5932
5933枚举,DefaultChangeUri子类型。
5934
5935**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5936
5937| 名称              | 值                      | 说明                                                         |
5938| ----------------- | ----------------------- | ------------------------------------------------------------ |
5939| DEFAULT_HIDDEN_ALBUM_URI<sup>11+</sup>  | 'file://media/HiddenAlbum' | 隐藏相册-相册视图中相册的Uri,即系统中包含隐藏文件的相册(不包含系统预置隐藏相册和回收站相册)的Uri,仅用于隐藏相册-相册视图场景的通知。**系统接口**:此接口为系统接口。 |
5940
5941## SourceMode<sup>11+</sup>
5942
5943枚举,资源文件的读取类型。
5944
5945**系统接口**:此接口为系统接口。
5946
5947**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5948
5949| 名称  |  值 |  说明 |
5950| ----- |  ---- |  ---- |
5951| ORIGINAL_MODE |  0 |  读取源文件。 |
5952| EDITED_MODE |  1 |  读取编辑后的文件。|
5953
5954## AuthorizationMode<sup>12+</sup>
5955
5956枚举,授权模式。
5957
5958**系统接口**:此接口为系统接口。
5959
5960**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5961
5962| 名称  |  值 |  说明 |
5963| ----- |  ---- |  ---- |
5964| SHORT_TIME_AUTHORIZATION|  0 |  短时授权。 |
5965
5966## AnalysisType<sup>11+</sup>
5967
5968枚举,智慧分析类型。
5969
5970**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5971
5972| 名称                            | 值  | 说明       |
5973| :---------------------------- | :- | :------- |
5974| ANALYSIS\_AESTHETICS\_SCORE   | 0  | 美学评分分析类别。**系统接口**:此接口为系统接口。    |
5975| ANALYSIS\_LABEL               | 1  | 分类标签分析类别。**系统接口**:此接口为系统接口。    |
5976| ANALYSIS\_OCR                 | 2  | 文字识别分析类别。**系统接口**:此接口为系统接口。    |
5977| ANALYSIS\_FACE                | 3  | 人脸检测分析类别。**系统接口**:此接口为系统接口。    |
5978| ANALYSIS\_OBJECT              | 4  | 目标检测分析类别。**系统接口**:此接口为系统接口。    |
5979| ANALYSIS\_RECOMMENDATION      | 5  | 推荐构图分析类别。**系统接口**:此接口为系统接口。    |
5980| ANALYSIS\_SEGMENTATION        | 6  | 抠图分析类别。**系统接口**:此接口为系统接口。    |
5981| ANALYSIS\_COMPOSITION         | 7  | 美学构图分析类别。**系统接口**:此接口为系统接口。   |
5982| ANALYSIS\_SALIENCY            | 8  | 最佳呈现主体中心分析类别。**系统接口**:此接口为系统接口。   |
5983| ANALYSIS\_DETAIL\_ADDRESS     | 9  | 详细地址分析类别。**系统接口**:此接口为系统接口。    |
5984| ANALYSIS\_HUMAN\_FACE\_TAG<sup>12+</sup>    | 10 | 人像聚类信息分析类别。**系统接口**:此接口为系统接口。    |
5985| ANALYSIS\_HEAD\_POSITION<sup>12+</sup>      | 11 | 人头、宠物头位置分析类别。**系统接口**:此接口为系统接口。    |
5986| ANALYSIS\_BONE\_POSE<sup>12+</sup>        | 12 | 人体骨骼点信息分析类别。**系统接口**:此接口为系统接口。    |
5987| ANALYSIS\_VIDEO\_LABEL<sup>12+</sup>        | 13 | 视频标签。**系统接口**:此接口为系统接口。    |
5988
5989## HighlightAlbumInfoType<sup>12+</sup>
5990
5991枚举,时刻相册信息类型。
5992
5993**系统接口**:此接口为系统接口。
5994
5995**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
5996
5997| 名称            | 值  | 说明       |
5998| :------------ | :- | :------- |
5999| COVER\_INFO   | 0  | 封面信息类别。    |
6000| PLAY\_INFO    | 1  | 音乐信息类别。    |
6001
6002## HighlightUserActionType<sup>12+</sup>
6003
6004枚举,时刻用户行为类型。
6005
6006**系统接口**:此接口为系统接口。
6007
6008**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
6009
6010| 名称                           | 值  | 说明       |
6011| :---------------------------- | :- | :------- |
6012| INSERTED\_PIC\_COUNT          | 0  | 新增图片数量类别。    |
6013| REMOVED\_PIC\_COUNT           | 1  | 移除图片数量类别。    |
6014| SHARED\_SCREENSHOT\_COUNT     | 2  | 分享二级界面长图次数类别。    |
6015| SHARED\_COVER\_COUNT          | 3  | 分享时刻封面次数类别。    |
6016| RENAMED\_COUNT                | 4  | 重命名次数类别。    |
6017| CHANGED\_COVER\_COUNT         | 5  | 修改封面次数类别。    |
6018| RENDER\_VIEWED\_TIMES         | 100  | 轮播观看次数类别。    |
6019| RENDER\_VIEWED\_DURATION      | 101  | 轮播观看总时长类别。   |
6020| ART\_LAYOUT\_VIEWED\_TIMES    | 102  | 二级界面观看次数类别。   |
6021| ART\_LAYOUT\_VIEWED\_DURATION | 103  | 二级界面观看总时长类别。    |
6022
6023## MovingPhotoEffectMode<sup>12+</sup>
6024
6025枚举,动态照片效果模式。
6026
6027**系统接口**:此接口为系统接口。
6028
6029**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
6030
6031| 名称                           | 值  | 说明       |
6032| :---------------------------- | :- | :------- |
6033| DEFAULT          | 0  | 默认模式。|
6034| BOUNCE\_PLAY     | 1  | 来回播放。|
6035| LOOP\_PLAY       | 2  | 循环播放。|
6036| LONG\_EXPOSURE   | 3  | 长曝光。  |
6037| MULTI\_EXPOSURE  | 4  | 多曝光。  |
6038| CINEMA\_GRAPH<sup>13+</sup>  | 5  | 微动瞬间。  |
6039| IMAGE\_ONLY<sup>13+</sup>  | 10  | 关闭模式。  |
6040
6041## PhotoPermissionType<sup>12+</sup>
6042
6043枚举,应用对媒体资源不同访问权限的类型。
6044
6045包括临时读权限和永久读权限,临时读权限会随着应用的死亡而删除,永久读权限不会。
6046
6047同一个应用对同一个媒体资源的权限覆盖规则:永久读会覆盖临时读,而临时读不会覆盖永久读。
6048
6049**系统接口**:此接口为系统接口。
6050
6051**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
6052
6053| 名称  |  值 |  说明 |
6054| ----- |  ---- |  ---- |
6055| TEMPORARY_READ_IMAGEVIDEO |  0 |  临时读权限类型。 |
6056| PERSISTENT_READ_IMAGEVIDEO |  1 |  永久读权限类型。 |
6057
6058## HideSensitiveType<sup>12+</sup>
6059
6060枚举,应用访问媒体资源时,对媒体资源进行信息脱敏的类型。
6061
6062**系统接口**:此接口为系统接口。
6063
6064**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
6065
6066| 名称  |  值 |  说明 |
6067| ----- |  ---- |  ---- |
6068| HIDE_LOCATION_AND_SHOOTING_PARAM |  0 |  脱敏地理位置和拍摄参数。 |
6069| HIDE_LOCATION_ONLY |  1 |  脱敏地理位置信息。 |
6070| HIDE_SHOOTING_PARAM_ONLY |  2 |  脱敏拍摄参数。 |
6071| NO_HIDE_SENSITIVE_TYPE |  3 |  不脱敏。 |
6072
6073## VideoEnhancementType<sup>13+</sup>
6074
6075枚举,分段式视频的二段式触发类型。
6076
6077**系统接口**:此接口为系统接口。
6078
6079**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
6080
6081| 名称  |  值 |  说明 |
6082| ----- |  ---- |  ---- |
6083| QUALITY_ENHANCEMENT_LOCAL |  0 |  在端侧增强处理。 |
6084| QUALITY_ENHANCEMENT_CLOUD |  1 |  在云侧增强处理。 |
6085| QUALITY_ENHANCEMENT_LOCAL_AND_CLOUD |  2 |  在端侧和云侧同时增强处理。 |
6086
6087## CloudEnhancementTaskStage<sup>13+</sup>
6088
6089枚举,应用查询云增强任务状态时,在[CloudEnhancementTaskState](#cloudenhancement13)接口中返回,表示云增强任务状态。
6090
6091**系统接口**:此接口为系统接口。
6092
6093**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
6094
6095| 名称  |  值 |  说明 |
6096| ----- |  ---- |  ---- |
6097| TASK_STAGE_EXCEPTION |  -1 |  云增强任务异常。 |
6098| TASK_STAGE_PREPARING |  0 |  云增强任务准备中。 |
6099| TASK_STAGE_UPLOADING |  1 |  云增强任务上传中。 |
6100| TASK_STAGE_EXECUTING |  2 |  云增强任务执行中。 |
6101| TASK_STAGE_DOWNLOADING |  3 |  云增强任务下载中。 |
6102| TASK_STAGE_FAILED |  4 |  云增强任务失败。 |
6103| TASK_STAGE_COMPLETED |  5 |  云增强任务已完成。 |
6104
6105## CloudEnhancementState<sup>13+</sup>
6106
6107枚举,表示云增强状态。
6108
6109**系统接口**:此接口为系统接口。
6110
6111**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
6112
6113| 名称  |  值 |  说明 |
6114| ----- |  ---- |  ---- |
6115| UNAVAILABLE |  0 |  云增强不可用。 |
6116| AVAILABLE |  1 |  云增强可用。 |
6117| EXECUTING |  2 |  云增强执行中。 |
6118| COMPLETED |  3 |  云增强已完成。 |
6119
6120## CloudEnhancementTaskState<sup>13+</sup>
6121
6122云增强任务状态,应用调用调用云增强任务查询接口的返回类型,包含云增强任务状态及部分状态下的额外信息。
6123
6124**系统接口**:此接口为系统接口。
6125
6126**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
6127
6128| 名称                   | 类型                | 必定提供 | 说明                                              |
6129| ---------------------- | ------------------- | ---- | ------------------------------------------------ |
6130|taskStage       |[CloudEnhancementTaskStage](#cloudenhancementtaskstage13)  |是 | 云增强任务状态。 |
6131|transferredFileSize          |number  |否 | 已传输的文件大小。当taskStage为CloudEnhancementTaskStage.TASK_STAGE_UPLOADING或者CloudEnhancementTaskStage.TASK_STAGE_DOWNLOADING时提供。  |
6132|totalFileSize          |number  |否 | 总文件大小。当taskStage为CloudEnhancementTaskStage.TASK_STAGE_UPLOADING或者CloudEnhancementTaskStage.TASK_STAGE_DOWNLOADING时提供。  |
6133|expectedDuration          |number  |否 | 排队时间。当taskStage为CloudEnhancementTaskStage.TASK_STAGE_EXECUTING时提供。  |
6134|statusCode          |number  |否 | 状态码。当taskStage为CloudEnhancementTaskStage.TASK_STAGE_FAILED时提供。  |
6135
6136## ThumbnailType<sup>13+</sup>
6137
6138枚举,缩略图类型。
6139
6140**系统接口**:此接口为系统接口。
6141
6142**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
6143
6144| 名称                           | 值  | 说明       |
6145| :---------------------------- | :- | :------- |
6146| LCD         | 1  | 获取LCD缩略图    |
6147| THM          | 2 | 获取THM缩略图    |