• 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 '@ohos.file.photoAccessHelper';
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      |  if parameter is invalid.         |
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      |  if parameter is invalid.         |
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      |  if parameter is invalid.         |
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      |  if parameter is invalid.         |
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      |  if parameter is invalid.         |
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      |  if parameter is invalid.         |
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 '@ohos.base';
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      |  if parameter is invalid.         |
404| 13900012     | Permission denied.         |
405| 13900020     | Invalid argument.         |
406| 14000011       | System inner fail.         |
407
408**示例:**
409
410```ts
411import dataSharePredicates from '@ohos.data.dataSharePredicates';
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      |  if parameter is invalid.         |
473| 13900012     | Permission denied.         |
474| 13900020     | Invalid argument.         |
475| 14000011       | System inner fail.         |
476
477**示例:**
478
479```ts
480import dataSharePredicates from '@ohos.data.dataSharePredicates';
481import { BusinessError } from '@ohos.base';
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 denied.         |
530| 202      |  Called by non-system application.         |
531| 401      |  if parameter is invalid.         |
532| 14000011       | System inner fail.         |
533
534**示例:**
535
536```ts
537import dataSharePredicates from '@ohos.data.dataSharePredicates';
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 denied.         |
587| 202      |  Called by non-system application.         |
588| 401      |  if parameter is invalid.         |
589| 14000011       | System inner fail.         |
590
591**示例:**
592
593```ts
594import dataSharePredicates from '@ohos.data.dataSharePredicates';
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```ts
665import dataSharePredicates from '@ohos.data.dataSharePredicates';
666import { BusinessError } from '@ohos.base';
667
668// 获取系统预置的隐藏相册
669async function getSysHiddenAlbum() {
670  console.info('getSysHiddenAlbumDemo');
671  phAccessHelper.getHiddenAlbums(photoAccessHelper.HiddenPhotosDisplayMode.ASSETS_MODE)
672    .then( async (fetchResult) => {
673      if (fetchResult === undefined) {
674        console.error('getSysHiddenAlbumPromise fetchResult is undefined');
675        return;
676      }
677      let hiddenAlbum: photoAccessHelper.Album = await fetchResult.getFirstObject();
678      console.info('getAlbumsPromise successfully, albumUri: ' + hiddenAlbum.albumUri);
679      fetchResult.close();
680    }).catch((err: BusinessError) => {
681      console.error(`getSysHiddenAlbumPromise failed with err: ${err.code}, ${err.message}`);
682    });
683}
684
685// 获取隐藏相册-相册视图,即系统中包含隐藏文件的相册(不包含系统预置的隐藏相册本身和回收站相册)
686async function getHiddenAlbumsView() {
687  console.info('getHiddenAlbumsViewDemo');
688  phAccessHelper.getHiddenAlbums(photoAccessHelper.HiddenPhotosDisplayMode.ALBUMS_MODE).then( async (fetchResult) => {
689    if (fetchResult === undefined) {
690      console.error('getHiddenAlbumsViewPromise fetchResult is undefined');
691      return;
692    }
693    let albums: Array<photoAccessHelper.Album> = await fetchResult.getAllObjects();
694    console.info('getHiddenAlbumsViewPromise successfully, albums size: ' + albums.length);
695
696    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
697    let fetchOption: photoAccessHelper.FetchOptions = {
698      fetchColumns: [],
699      predicates: predicates
700    };
701    for (let i = 0; i < albums.length; i++) {
702      // 获取相册中的隐藏文件
703      albums[i].getAssets(fetchOption).then((assetFetchResult) => {
704        console.info('album get hidden assets successfully, getCount: ' + assetFetchResult.getCount());
705      }).catch((err: BusinessError) => {
706        console.error(`album get hidden assets failed with error: ${err.code}, ${err.message}`);
707      });
708    }
709    fetchResult.close();
710  }).catch((err: BusinessError) => {
711    console.error(`getHiddenAlbumsViewPromise failed with err: ${err.code}, ${err.message}`);
712  });
713}
714```
715
716### deleteAssets<sup>(deprecated)</sup>
717
718deleteAssets(uriList: Array&lt;string&gt;, callback: AsyncCallback&lt;void&gt;): void
719
720删除媒体文件,删除的文件进入到回收站,使用callback方式返回结果。
721
722> **说明:**
723>
724> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.deleteAssets](js-apis-photoAccessHelper.md#deleteassets11)替代。
725
726**系统接口**:此接口为系统接口。
727
728**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
729
730**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
731
732**参数:**
733
734| 参数名   | 类型                      | 必填 | 说明       |
735| -------- | ------------------------- | ---- | ---------- |
736| uriList | Array&lt;string&gt; | 是   | 待删除的媒体文件uri数组。 |
737| callback | AsyncCallback&lt;void&gt; | 是   | callback返回void。 |
738
739**错误码:**
740
741接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
742
743| 错误码ID | 错误信息 |
744| -------- | ---------------------------------------- |
745| 202   |  Called by non-system application.         |
746| 401      |  if parameter is invalid.         |
747| 13900012     | Permission denied.         |
748| 13900020     | Invalid argument.         |
749| 14000002       | Invalid uri.         |
750| 14000011       | System inner fail.         |
751
752**示例:**
753
754```ts
755import dataSharePredicates from '@ohos.data.dataSharePredicates';
756
757async function example() {
758  console.info('deleteAssetDemo');
759  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
760  let fetchOptions: photoAccessHelper.FetchOptions = {
761    fetchColumns: [],
762    predicates: predicates
763  };
764  try {
765    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
766    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
767    if (asset === undefined) {
768      console.error('asset not exist');
769      return;
770    }
771    phAccessHelper.deleteAssets([asset.uri], (err) => {
772      if (err === undefined) {
773        console.info('deleteAssets successfully');
774      } else {
775        console.error(`deleteAssets failed with error: ${err.code}, ${err.message}`);
776      }
777    });
778  } catch (err) {
779    console.error(`fetch failed, error: ${err.code}, ${err.message}`);
780  }
781}
782```
783
784### deleteAssets<sup>(deprecated)</sup>
785
786deleteAssets(uriList: Array&lt;string&gt;): Promise&lt;void&gt;
787
788删除媒体文件,删除的文件进入到回收站,使用Promise方式返回结果。
789
790> **说明:**
791>
792> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.deleteAssets](js-apis-photoAccessHelper.md#deleteassets11)替代。
793
794**系统接口**:此接口为系统接口。
795
796**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
797
798**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
799
800**参数:**
801
802| 参数名   | 类型                      | 必填 | 说明       |
803| -------- | ------------------------- | ---- | ---------- |
804| uriList | Array&lt;string&gt; | 是   | 待删除的媒体文件uri数组。 |
805
806**返回值:**
807
808| 类型                                    | 说明              |
809| --------------------------------------- | ----------------- |
810| Promise&lt;void&gt;| Promise对象,返回void。 |
811
812**错误码:**
813
814接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
815
816| 错误码ID | 错误信息 |
817| -------- | ---------------------------------------- |
818| 202   |  Called by non-system application.         |
819| 401      |  if parameter is invalid.         |
820| 13900012     | Permission denied.         |
821| 13900020     | Invalid argument.         |
822| 14000002       | Invalid uri.         |
823| 14000011       | System inner fail.         |
824
825**示例:**
826
827```ts
828import dataSharePredicates from '@ohos.data.dataSharePredicates';
829
830async function example() {
831  console.info('deleteDemo');
832  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
833  let fetchOptions: photoAccessHelper.FetchOptions = {
834    fetchColumns: [],
835    predicates: predicates
836  };
837  try {
838    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
839    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
840    if (asset === undefined) {
841      console.error('asset not exist');
842      return;
843    }
844    await phAccessHelper.deleteAssets([asset.uri]);
845    console.info('deleteAssets successfully');
846  } catch (err) {
847    console.error(`deleteAssets failed with error: ${err.code}, ${err.message}`);
848  }
849}
850```
851
852### getPhotoIndex
853
854getPhotoIndex(photoUri: string, albumUri: string, options: FetchOptions, callback: AsyncCallback&lt;number&gt;): void
855
856获取相册中图片或视频的位置,使用callback方式返回结果。
857
858**系统接口**:此接口为系统接口。
859
860**需要权限**:ohos.permission.READ_IMAGEVIDEO
861
862**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
863
864**参数:**
865
866| 参数名   | 类型                      | 必填 | 说明       |
867| -------- | ------------------------- | ---- | ---------- |
868| photoUri | string | 是   | 所查询的图库资源的uri。 |
869| albumUri | string | 是   | 相册uri,可以为空字符串,为空字符串时默认查询全部图库资源。   |
870| options  | [FetchOptions](js-apis-photoAccessHelper.md#fetchoptions)       | 是   |  检索选项,predicates中必须设置一种检索排序方式,不设置或多设置均会导致接口调用异常。      |
871| callback | AsyncCallback&lt;number&gt;| 是   | callback返回相册中资源的索引。 |
872
873**错误码:**
874
875接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
876
877| 错误码ID | 错误信息 |
878| -------- | ---------------------------------------- |
879| 202     |  Called by non-system application.         |
880| 401      |  if parameter is invalid.         |
881| 13900012     | Permission denied.         |
882| 13900020     | Invalid argument.         |
883| 14000011       | System inner fail.         |
884
885**示例:**
886
887```ts
888import dataSharePredicates from '@ohos.data.dataSharePredicates';
889
890async function example() {
891  try {
892    console.info('getPhotoIndexDemo');
893    let predicatesForGetAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
894    let fetchOp: photoAccessHelper.FetchOptions = {
895      fetchColumns: [],
896      predicates: predicatesForGetAsset
897    };
898    // Obtain the uri of the album
899    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.FAVORITE, fetchOp);
900    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
901    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
902    predicates.orderByAsc(photoAccessHelper.PhotoKeys.DATE_MODIFIED);
903    let fetchOptions: photoAccessHelper.FetchOptions = {
904      fetchColumns: [photoAccessHelper.PhotoKeys.DATE_MODIFIED],
905      predicates: predicates
906    };
907    let photoFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions);
908    let expectIndex = 1;
909    // Obtain the uri of the second file
910    let photoAsset: photoAccessHelper.PhotoAsset = await photoFetchResult.getObjectByPosition(expectIndex);
911
912    phAccessHelper.getPhotoIndex(photoAsset.uri, album.albumUri, fetchOptions, (err, index) => {
913      if (err === undefined) {
914        console.info(`getPhotoIndex successfully and index is : ${index}`);
915      } else {
916        console.error(`getPhotoIndex failed; error: ${err.code}, ${err.message}`);
917      }
918    });
919  } catch (error) {
920    console.error(`getPhotoIndex failed; error: ${error.code}, ${error.message}`);
921  }
922}
923```
924
925### getPhotoIndex
926
927getPhotoIndex(photoUri: string, albumUri: string, options: FetchOptions): Promise&lt;number&gt;
928
929获取相册中图片或视频的位置,使用Promise方式返回结果。
930
931**系统接口**:此接口为系统接口。
932
933**需要权限**:ohos.permission.READ_IMAGEVIDEO
934
935**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
936
937**参数:**
938
939| 参数名   | 类型                      | 必填 | 说明       |
940| -------- | ------------------------- | ---- | ---------- |
941| photoUri | string | 是   | 所查询的图库资源的uri。 |
942| albumUri | string | 是   | 相册uri,可以为空字符串,为空字符串时默认查询全部图库资源。   |
943| options  | [FetchOptions](js-apis-photoAccessHelper.md#fetchoptions)       | 是   |  检索选项,predicates中必须设置一种检索排序方式,不设置或多设置均会导致接口调用异常。      |
944
945**返回值:**
946
947| 类型                                    | 说明              |
948| --------------------------------------- | ----------------- |
949| Promise&lt;number&gt;| 返回相册中资源的索引。 |
950
951**错误码:**
952
953接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
954
955| 错误码ID | 错误信息 |
956| -------- | ---------------------------------------- |
957| 202     |  Called by non-system application.         |
958| 401      |  if parameter is invalid.         |
959| 13900012     | Permission denied.         |
960| 13900020     | Invalid argument.         |
961| 14000011       | System inner fail.         |
962
963**示例:**
964
965```ts
966import dataSharePredicates from '@ohos.data.dataSharePredicates';
967import { BusinessError } from '@ohos.base';
968
969async function example() {
970  try {
971    console.info('getPhotoIndexDemo');
972    let predicatesForGetAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
973    let fetchOp: photoAccessHelper.FetchOptions = {
974      fetchColumns: [],
975      predicates: predicatesForGetAsset
976    };
977    // Obtain the uri of the album
978    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.FAVORITE, fetchOp);
979    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
980    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
981    predicates.orderByAsc(photoAccessHelper.PhotoKeys.DATE_MODIFIED);
982    let fetchOptions: photoAccessHelper.FetchOptions = {
983      fetchColumns: [photoAccessHelper.PhotoKeys.DATE_MODIFIED],
984      predicates: predicates
985    };
986    let photoFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions);
987    let expectIndex = 1;
988    // Obtain the uri of the second file
989    let photoAsset: photoAccessHelper.PhotoAsset = await photoFetchResult.getObjectByPosition(expectIndex);
990    phAccessHelper.getPhotoIndex(photoAsset.uri, album.albumUri, fetchOptions).then((index) => {
991      console.info(`getPhotoIndex successfully and index is : ${index}`);
992    }).catch((err: BusinessError) => {
993      console.error(`getPhotoIndex failed; error: ${err.code}, ${err.message}`);
994    });
995  } catch (error) {
996    console.error(`getPhotoIndex failed; error: ${error.code}, ${error.message}`);
997  }
998}
999```
1000
1001### saveFormInfo<sup>11+</sup>
1002
1003saveFormInfo(info:FormInfo, callback: AsyncCallback&lt;void&gt;):void
1004
1005将图库卡片相关信息保存到数据库中,使用callback方式返回结果。
1006
1007**系统接口**:此接口为系统接口。
1008
1009**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1010
1011**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1012
1013**参数:**
1014
1015| 参数名   | 类型                     | 必填 | 说明                      |
1016| -------- | ------------------------ | ---- | ------------------------- |
1017| info  | [FormInfo](#forminfo11)        | 是   | 图库卡片信息,包括图库卡片的id和卡片绑定的图片的uri。              |
1018| callback |  AsyncCallback&lt;void&gt; | 是   | callback返回void。 |
1019
1020**错误码:**
1021
1022接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1023
1024| 错误码ID | 错误信息 |
1025| -------- | ---------------------------------------- |
1026| 201   | Permission verification failed, usually the result returned by VerifyAccessToken.         |
1027| 202   | Permission verification failed, application which is not a system application uses system API.         |
1028| 401   | if the argument is invalid.         |
1029| 14000011       | System inner fail.         |
1030
1031
1032**示例:**
1033
1034```ts
1035import dataSharePredicates from '@ohos.data.dataSharePredicates';
1036import { BusinessError } from '@ohos.base';
1037
1038async function example() {
1039  console.info('saveFormInfoDemo');
1040  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
1041  let fetchOptions: photoAccessHelper.FetchOptions = {
1042    fetchColumns: [],
1043    predicates: predicates
1044  };
1045  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
1046  let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
1047
1048  let info: photoAccessHelper.FormInfo = {
1049    //formId是一个由纯数字组成的字符串,uri为图库中存在的图片的uri信息,图库中无图片创建卡片时uri需为空字符串
1050    formId : "20230116123",
1051    uri: photoAsset.uri,
1052  }
1053
1054  phAccessHelper.saveFormInfo(info, async (err: BusinessError) => {
1055    if (err == undefined) {
1056      console.info('saveFormInfo success');
1057    } else {
1058      console.error(`saveFormInfo fail with error: ${err.code}, ${err.message}`);
1059    }
1060  });
1061}
1062```
1063
1064### saveFormInfo<sup>11+</sup>
1065
1066saveFormInfo(info:FormInfo):Promise&lt;void&gt;
1067
1068将图库卡片相关信息保存到数据库中,使用Promise方式返回结果。
1069
1070**系统接口**:此接口为系统接口。
1071
1072**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1073
1074**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1075
1076**参数:**
1077
1078| 参数名   | 类型                     | 必填 | 说明                      |
1079| -------- | ------------------------ | ---- | ------------------------- |
1080| info  | [FormInfo](#forminfo11)        | 是   | 图库卡片信息,包括图库卡片的id和卡片绑定的图片的uri。              |
1081
1082**返回值:**
1083
1084| 类型                                    | 说明              |
1085| --------------------------------------- | ----------------- |
1086| Promise&lt;void&gt;| Promise对象,返回void。 |
1087
1088**错误码:**
1089
1090接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1091
1092| 错误码ID | 错误信息 |
1093| -------- | ---------------------------------------- |
1094| 201   | Permission verification failed, usually the result returned by VerifyAccessToken.         |
1095| 202   | Permission verification failed, application which is not a system application uses system API.         |
1096| 401   | if the argument is invalid.         |
1097| 14000011       | System inner fail.         |
1098
1099**示例:**
1100
1101```ts
1102import dataSharePredicates from '@ohos.data.dataSharePredicates';
1103import { BusinessError } from '@ohos.base';
1104
1105async function example() {
1106  console.info('saveFormInfoDemo');
1107  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
1108  let fetchOptions: photoAccessHelper.FetchOptions = {
1109    fetchColumns: [],
1110    predicates: predicates
1111  };
1112  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
1113  let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
1114
1115  let info: photoAccessHelper.FormInfo = {
1116    //formId是一个由纯数字组成的字符串,uri为图库中存在的图片的uri信息,图库中无图片创建卡片时uri需为空字符串
1117    formId: "20230116123",
1118    uri: photoAsset.uri,
1119  }
1120
1121  phAccessHelper.saveFormInfo(info).then(() => {
1122    console.info('saveFormInfo successfully');
1123  }).catch((err: BusinessError) => {
1124    console.error(`saveFormInfo failed with error: ${err.code}, ${err.message}`);
1125  });
1126}
1127```
1128
1129### removeFormInfo<sup>11+</sup>
1130
1131removeFormInfo(info:FormInfo, callback: AsyncCallback&lt;void&gt;):void
1132
1133从数据库中删除图库卡片信息,使用callback方式返回结果。
1134
1135**系统接口**:此接口为系统接口。
1136
1137**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1138
1139**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1140
1141**参数:**
1142
1143| 参数名   | 类型                     | 必填 | 说明                      |
1144| -------- | ------------------------ | ---- | ------------------------- |
1145| info  | [FormInfo](#forminfo11)        | 是   |  图库卡片信息,包括图库卡片的id和卡片绑定的图片的uri。              |
1146| callback |  AsyncCallback&lt;void&gt; | 是   | callback返回void。 |
1147
1148**错误码:**
1149
1150接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1151
1152| 错误码ID | 错误信息 |
1153| -------- | ---------------------------------------- |
1154| 201   | Permission verification failed, usually the result returned by VerifyAccessToken.         |
1155| 202   | Permission verification failed, application which is not a system application uses system API.         |
1156| 401   | if the argument is invalid.         |
1157| 14000011       | System inner fail.         |
1158
1159**示例:**
1160
1161```ts
1162import { BusinessError } from '@ohos.base';
1163
1164async function example() {
1165  console.info('removeFormInfoDemo');
1166  let info: photoAccessHelper.FormInfo = {
1167    //formId是一个由纯数字组成的字符串,移除卡片的时候uri填空即可
1168    formId: "20230116123",
1169    uri: "",
1170  }
1171
1172  phAccessHelper.removeFormInfo(info, async (err: BusinessError) => {
1173    if (err == undefined) {
1174      console.info('removeFormInfo success');
1175    } else {
1176      console.error(`removeFormInfo fail with error: ${err.code}, ${err.message}`);
1177    }
1178  });
1179}
1180```
1181
1182### removeFormInfo<sup>11+</sup>
1183
1184removeFormInfo(info:FormInfo):Promise&lt;void&gt;
1185
1186从数据库中删除图库卡片信息,使用Promise方式返回结果。
1187
1188**系统接口**:此接口为系统接口。
1189
1190**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1191
1192**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1193
1194**参数:**
1195
1196| 参数名   | 类型                     | 必填 | 说明                      |
1197| -------- | ------------------------ | ---- | ------------------------- |
1198| info  | [FormInfo](#forminfo11)        | 是   |  图库卡片信息,包括图库卡片的id和卡片绑定的图片的uri。              |
1199
1200**返回值:**
1201
1202| 类型                                    | 说明              |
1203| --------------------------------------- | ----------------- |
1204| Promise&lt;void&gt;| Promise对象,返回void。 |
1205
1206**错误码:**
1207
1208接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1209
1210| 错误码ID | 错误信息 |
1211| -------- | ---------------------------------------- |
1212| 201   | Permission verification failed, usually the result returned by VerifyAccessToken.         |
1213| 202   | Permission verification failed, application which is not a system application uses system API.         |
1214| 401   | if the argument is invalid.         |
1215| 14000011       | System inner fail.         |
1216
1217**示例:**
1218
1219```ts
1220import { BusinessError } from '@ohos.base';
1221
1222async function example() {
1223  console.info('removeFormInfoDemo');
1224  let info: photoAccessHelper.FormInfo = {
1225    //formId是一个由纯数字组成的字符串,移除卡片的时候uri填空即可
1226    formId: "20230116123",
1227    uri: "",
1228  }
1229
1230  phAccessHelper.removeFormInfo(info).then(() => {
1231    console.info('removeFormInfo successfully');
1232  }).catch((err: BusinessError) => {
1233    console.error(`removeFormInfo failed with error: ${err.code}, ${err.message}`);
1234  });
1235}
1236```
1237
1238## PhotoAsset
1239
1240提供封装文件属性的方法。
1241
1242### open<sup>(deprecated)</sup>
1243
1244open(mode: string, callback: AsyncCallback&lt;number&gt;): void
1245
1246打开当前文件,使用callback方式返回异步结果。
1247
1248> **说明:**
1249>
1250> 从API version 10开始支持,从API version 11开始废弃。出于安全考量,不再提供获取正式媒体文件句柄的接口。
1251
1252**注意**:当前此(写)操作是互斥的操作,返回的文件描述符在使用完毕后需要调用close进行释放。
1253
1254**系统接口**:此接口为系统接口。
1255
1256**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.WRITE_IMAGEVIDEO
1257
1258**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1259
1260**参数:**
1261
1262| 参数名      | 类型                          | 必填   | 说明                                  |
1263| -------- | --------------------------- | ---- | ----------------------------------- |
1264| mode     | string                      | 是    | 打开文件方式,分别为:'r'(只读), 'w'(只写), 'rw'(读写)。 |
1265| callback | AsyncCallback&lt;number&gt; | 是    | callback返回文件描述符。                            |
1266
1267**错误码:**
1268
1269接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1270
1271| 错误码ID | 错误信息 |
1272| -------- | ---------------------------------------- |
1273| 202     |  Called by non-system application.         |
1274| 401       |  if parameter is invalid.         |
1275| 13900012     | Permission denied.         |
1276| 13900020     | Invalid argument.         |
1277| 14000011       | System inner fail.         |
1278
1279**示例:**
1280
1281```ts
1282async function example() {
1283  console.info('Open demo');
1284  let testFileName: string = 'testFile' + Date.now() + '.jpg';
1285  let photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName);
1286  photoAsset.open('rw', (err, fd) => {
1287    if (fd !== undefined) {
1288      console.info('File fd' + fd);
1289      photoAsset.close(fd);
1290    } else {
1291      console.error(`Open file err: ${err.code}, ${err.message}`);
1292    }
1293  });
1294}
1295```
1296
1297### open<sup>(deprecated)</sup>
1298
1299open(mode: string): Promise&lt;number&gt;
1300
1301打开当前文件,使用promise方式返回异步结果。
1302
1303> **说明:**
1304>
1305> 从API version 10开始支持,从API version 11开始废弃。出于安全考量,不再提供获取正式媒体文件句柄的接口。
1306
1307**注意**:当前此(写)操作是互斥的操作,返回的文件描述符在使用完毕后需要调用close进行释放。
1308
1309**系统接口**:此接口为系统接口。
1310
1311**需要权限**:ohos.permission.READ_IMAGEVIDEOohos.permission.WRITE_IMAGEVIDEO
1312
1313**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1314
1315**参数:**
1316
1317| 参数名  | 类型     | 必填   | 说明                                  |
1318| ---- | ------ | ---- | ----------------------------------- |
1319| mode | string | 是    | 打开文件方式,分别为:'r'(只读), 'w'(只写), 'rw'(读写)。 |
1320
1321**返回值:**
1322
1323| 类型                    | 说明            |
1324| --------------------- | ------------- |
1325| Promise&lt;number&gt; | Promise对象,返回文件描述符。 |
1326
1327**错误码:**
1328
1329接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1330
1331| 错误码ID | 错误信息 |
1332| -------- | ---------------------------------------- |
1333| 202     |  Called by non-system application.         |
1334| 401       |  if parameter is invalid.         |
1335| 13900012     | Permission denied.         |
1336| 13900020     | Invalid argument.         |
1337| 14000011       | System inner fail.         |
1338
1339**示例:**
1340
1341```ts
1342async function example() {
1343  console.info('Open demo');
1344  try {
1345    let testFileName: string = 'testFile' + Date.now() + '.jpg';
1346    let photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName);
1347    let fd: number = await photoAsset.open('rw');
1348    if (fd !== undefined) {
1349      console.info('File fd' + fd);
1350      photoAsset.close(fd);
1351    } else {
1352      console.error('Open file fail');
1353    }
1354  } catch (err) {
1355    console.error(`Open demo err: ${err.code}, ${err.message}`);
1356  }
1357}
1358```
1359
1360### setFavorite<sup>(deprecated)</sup>
1361
1362setFavorite(favoriteState: boolean, callback: AsyncCallback&lt;void&gt;): void
1363
1364将文件设置为收藏文件,使用callback方式返回异步结果。
1365
1366> **说明:**
1367>
1368> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setFavorite](#setfavorite11)替代。
1369
1370**系统接口**:此接口为系统接口。
1371
1372**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1373
1374**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1375
1376**参数:**
1377
1378| 参数名        | 类型                        | 必填   | 说明                                 |
1379| ---------- | ------------------------- | ---- | ---------------------------------- |
1380| favoriteState | boolean                   | 是    | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏。 |
1381| callback   | AsyncCallback&lt;void&gt; | 是    | callback返回void。                              |
1382
1383**错误码:**
1384
1385接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1386
1387| 错误码ID | 错误信息 |
1388| -------- | ---------------------------------------- |
1389| 202        |  Called by non-system application.         |
1390| 401       |  if parameter is invalid.         |
1391| 13900012     | Permission denied.         |
1392| 13900020     | Invalid argument.         |
1393| 14000011       | System inner fail.         |
1394
1395**示例:**
1396
1397```ts
1398import dataSharePredicates from '@ohos.data.dataSharePredicates';
1399
1400async function example() {
1401  console.info('setFavoriteDemo');
1402  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
1403  let fetchOption: photoAccessHelper.FetchOptions = {
1404    fetchColumns: [],
1405    predicates: predicates
1406  };
1407  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
1408  let asset = await fetchResult.getFirstObject();
1409  asset.setFavorite(true, (err) => {
1410    if (err === undefined) {
1411      console.info('favorite successfully');
1412    } else {
1413      console.error(`favorite failed with error: ${err.code}, ${err.message}`);
1414    }
1415  });
1416}
1417```
1418
1419### setFavorite<sup>(deprecated)</sup>
1420
1421setFavorite(favoriteState: boolean): Promise&lt;void&gt;
1422
1423将文件设置为收藏文件,使用promise方式返回异步结果。
1424
1425> **说明:**
1426>
1427> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setFavorite](#setfavorite11)替代。
1428
1429**系统接口**:此接口为系统接口。
1430
1431**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1432
1433**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1434
1435**参数:**
1436
1437| 参数名        | 类型      | 必填   | 说明                                 |
1438| ---------- | ------- | ---- | ---------------------------------- |
1439| favoriteState | boolean | 是    | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏。 |
1440
1441**返回值:**
1442
1443| 类型                  | 说明         |
1444| ------------------- | ---------- |
1445| Promise&lt;void&gt; | Promise对象,返回void。 |
1446
1447**错误码:**
1448
1449接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1450
1451| 错误码ID | 错误信息 |
1452| -------- | ---------------------------------------- |
1453| 202        |  Called by non-system application.         |
1454| 401       |  if parameter is invalid.         |
1455| 13900012     | Permission denied.         |
1456| 13900020     | Invalid argument.         |
1457| 14000011       | System inner fail.         |
1458
1459**示例:**
1460
1461```ts
1462import dataSharePredicates from '@ohos.data.dataSharePredicates';
1463import { BusinessError } from '@ohos.base';
1464
1465async function example() {
1466  console.info('setFavoriteDemo');
1467  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
1468  let fetchOption: photoAccessHelper.FetchOptions = {
1469    fetchColumns: [],
1470    predicates: predicates
1471  };
1472  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
1473  let asset = await fetchResult.getFirstObject();
1474  asset.setFavorite(true).then(() => {
1475    console.info('setFavorite successfully');
1476  }).catch((err: BusinessError) => {
1477    console.error(`setFavorite failed with error: ${err.code}, ${err.message}`);
1478  });
1479}
1480```
1481
1482### setHidden<sup>(deprecated)</sup>
1483
1484setHidden(hiddenState: boolean, callback: AsyncCallback&lt;void&gt;): void
1485
1486将文件设置为隐私文件,使用callback方式返回异步结果。
1487
1488隐私文件存在隐私相册中,用户通过隐私相册去获取隐私文件后可以通过设置hiddenState为false来从隐私相册中移除。
1489
1490> **说明:**
1491>
1492> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setHidden](#sethidden11)替代。
1493
1494**系统接口**:此接口为系统接口。
1495
1496**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1497
1498**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1499
1500**参数:**
1501
1502| 参数名        | 类型                        | 必填   | 说明                                 |
1503| ---------- | ------------------------- | ---- | ---------------------------------- |
1504| hiddenState | boolean                   | 是    | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 |
1505| callback   | AsyncCallback&lt;void&gt; | 是    | callback返回void。                              |
1506
1507**错误码:**
1508
1509接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1510
1511| 错误码ID | 错误信息 |
1512| -------- | ---------------------------------------- |
1513| 202        |  Called by non-system application.         |
1514| 401       |  if parameter is invalid.         |
1515| 13900012     | Permission denied.         |
1516| 13900020     | Invalid argument.         |
1517| 14000011       | System inner fail.         |
1518
1519**示例:**
1520
1521```ts
1522import dataSharePredicates from '@ohos.data.dataSharePredicates';
1523
1524async function example() {
1525  console.info('setHiddenDemo');
1526  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
1527  let fetchOption: photoAccessHelper.FetchOptions = {
1528    fetchColumns: [],
1529    predicates: predicates
1530  };
1531  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
1532  let asset = await fetchResult.getFirstObject();
1533  asset.setHidden(true, (err) => {
1534    if (err === undefined) {
1535      console.info('setHidden successfully');
1536    } else {
1537      console.error(`setHidden failed with error: ${err.code}, ${err.message}`);
1538    }
1539  });
1540}
1541```
1542
1543### setHidden<sup>(deprecated)</sup>
1544
1545setHidden(hiddenState: boolean): Promise&lt;void&gt;
1546
1547将文件设置为隐私文件,使用promise方式返回异步结果。
1548
1549隐私文件存在隐私相册中,用户通过隐私相册去获取隐私文件后可以通过设置hiddenState为false来从隐私相册中移除。
1550
1551> **说明:**
1552>
1553> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setHidden](#sethidden11)替代。
1554
1555**系统接口**:此接口为系统接口。
1556
1557**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1558
1559**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1560
1561**参数:**
1562
1563| 参数名        | 类型      | 必填   | 说明                                 |
1564| ---------- | ------- | ---- | ---------------------------------- |
1565| hiddenState | boolean | 是    | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 |
1566
1567**返回值:**
1568
1569| 类型                  | 说明         |
1570| ------------------- | ---------- |
1571| Promise&lt;void&gt; | Promise对象,返回void。 |
1572
1573**错误码:**
1574
1575接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1576
1577| 错误码ID | 错误信息 |
1578| -------- | ---------------------------------------- |
1579| 202        |  Called by non-system application.         |
1580| 401       |  if parameter is invalid.         |
1581| 13900012     | Permission denied.         |
1582| 13900020     | Invalid argument.         |
1583| 14000011       | System inner fail.         |
1584
1585**示例:**
1586
1587```ts
1588import dataSharePredicates from '@ohos.data.dataSharePredicates';
1589import { BusinessError } from '@ohos.base';
1590
1591async function example() {
1592  // 示例代码为将文件从隐藏相册中恢复,需要先在隐藏相册预置资源
1593  console.info('setHiddenDemo');
1594  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
1595  let fetchOption: photoAccessHelper.FetchOptions = {
1596    fetchColumns: [],
1597    predicates: predicates
1598  };
1599  let albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.HIDDEN);
1600  let album = await albumList.getFirstObject();
1601  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
1602  let asset = await fetchResult.getFirstObject();
1603  asset.setHidden(false).then(() => {
1604    console.info('setHidden successfully');
1605  }).catch((err: BusinessError) => {
1606    console.error(`setHidden failed with error: ${err.code}, ${err.message}`);
1607  });
1608}
1609```
1610
1611### getExif
1612
1613getExif(): Promise&lt;string&gt;
1614
1615返回jpg格式图片Exif标签组成的json格式的字符串,该方法使用Promise方式返回结果。
1616
1617此接口中获取的Exif标签信息是由[image](../apis-image-kit/js-apis-image.md)模块提供。Exif标签详细信息请参考[image.PropertyKey](../apis-image-kit/js-apis-image.md#propertykey7)。
1618
1619**注意**:此接口返回的是Exif标签组成的json格式的字符串,完整Exif信息由all_exif与[PhotoKeys.USER_COMMENT](#photokeys)组成,fetchColumns需要传入这两个字段。
1620
1621**系统接口**:此接口为系统接口。
1622
1623**需要权限**:ohos.permission.READ_IMAGEVIDEO
1624
1625**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1626
1627**返回值:**
1628
1629| 类型                                    | 说明              |
1630| --------------------------------------- | ----------------- |
1631| Promise&lt;string&gt; | 返回Exif标签组成的json格式的字符串。 |
1632
1633**错误码:**
1634
1635接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1636
1637| 错误码ID | 错误信息 |
1638| -------- | ---------------------------------------- |
1639| 202        |  Called by non-system application.         |
1640| 401       |  if parameter is invalid.         |
1641| 13900012     | Permission denied.         |
1642| 13900020     | Invalid argument.         |
1643| 14000011       | System inner fail.         |
1644
1645**示例:**
1646
1647```ts
1648import dataSharePredicates from '@ohos.data.dataSharePredicates';
1649
1650async function example() {
1651  try {
1652    console.info('getExifDemo');
1653    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
1654    let fetchOptions: photoAccessHelper.FetchOptions = {
1655      fetchColumns: [ 'all_exif',  photoAccessHelper.PhotoKeys.USER_COMMENT],
1656      predicates: predicates
1657    };
1658    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
1659    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
1660    let exifMessage = await photoAsset.getExif();
1661    let userCommentKey = 'UserComment';
1662    let userComment = JSON.stringify(JSON.parse(exifMessage), [userCommentKey]);
1663    console.info('getExifDemo userComment: ' + JSON.stringify(userComment));
1664    fetchResult.close();
1665  } catch (err) {
1666    console.error(`getExifDemoCallback failed with error: ${err.code}, ${err.message}`);
1667  }
1668}
1669```
1670
1671### getExif
1672
1673getExif(callback: AsyncCallback&lt;string&gt;): void
1674
1675返回jpg格式图片Exif标签组成的json格式的字符串,使用callback方式返回异步结果。
1676
1677此接口中获取的Exif标签信息是由[image](../apis-image-kit/js-apis-image.md)模块提供。Exif标签详细信息请参考[image.PropertyKey](../apis-image-kit/js-apis-image.md#propertykey7)。
1678
1679**注意**:此接口返回的是Exif标签组成的json格式的字符串,完整Exif信息由all_exif与[PhotoKeys.USER_COMMENT](#photokeys)组成,fetchColumns需要传入这两个字段。
1680
1681**系统接口**:此接口为系统接口。
1682
1683**需要权限**:ohos.permission.READ_IMAGEVIDEO
1684
1685**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1686
1687**参数:**
1688
1689| 参数名   | 类型                      | 必填 | 说明       |
1690| -------- | ------------------------- | ---- | ---------- |
1691| callback | AsyncCallback&lt;string&gt; | 是   | 返回Exif字段组成的json格式的字符串。 |
1692
1693**错误码:**
1694
1695接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1696
1697| 错误码ID | 错误信息 |
1698| -------- | ---------------------------------------- |
1699| 202        |  Called by non-system application.         |
1700| 401       |  if parameter is invalid.         |
1701| 13900012     | Permission denied.         |
1702| 13900020     | Invalid argument.         |
1703| 14000011       | System inner fail.         |
1704
1705**示例:**
1706
1707```ts
1708import dataSharePredicates from '@ohos.data.dataSharePredicates';
1709
1710async function example() {
1711  try {
1712    console.info('getExifDemo');
1713    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
1714    predicates.isNotNull('all_exif')
1715    let fetchOptions: photoAccessHelper.FetchOptions = {
1716      fetchColumns: ['all_exif', photoAccessHelper.PhotoKeys.USER_COMMENT],
1717      predicates: predicates
1718    };
1719    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
1720    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
1721    console.info('getExifDemo photoAsset displayName: ' + JSON.stringify(photoAsset.displayName));
1722    let userCommentKey = 'UserComment';
1723    photoAsset.getExif((err, exifMessage) => {
1724      if (exifMessage !== undefined) {
1725        let userComment = JSON.stringify(JSON.parse(exifMessage), [userCommentKey]);
1726        console.info('getExifDemo userComment: ' + JSON.stringify(userComment));
1727      } else {
1728        console.error(`getExif failed, error: ${err.code}, ${err.message}`);
1729      }
1730    });
1731    fetchResult.close();
1732  } catch (err) {
1733    console.error(`getExifDemoCallback failed with error: ${err.code}, ${err.message}`);
1734  }
1735}
1736```
1737
1738### setUserComment<sup>(deprecated)</sup>
1739
1740setUserComment(userComment: string): Promise&lt;void&gt;
1741
1742修改图片或者视频的备注信息,该方法使用Promise来返回结果。
1743
1744> **说明:**
1745>
1746> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setUserComment](#setusercomment11)替代。
1747
1748**注意**:此接口只可修改图片或者视频的备注信息。
1749
1750**系统接口**:此接口为系统接口。
1751
1752**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1753
1754**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1755
1756**参数:**
1757
1758| 参数名   | 类型                      | 必填 | 说明       |
1759| -------- | ------------------------- | ---- | ---------- |
1760| userComment | string | 是   | 待修改的图片或视频的备注信息,备注信息最长为420字符。 |
1761
1762**返回值:**
1763
1764| 类型                                    | 说明              |
1765| --------------------------------------- | ----------------- |
1766|Promise&lt;void&gt; | Promise对象,返回void。 |
1767
1768**错误码:**
1769
1770接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1771
1772| 错误码ID | 错误信息 |
1773| -------- | ---------------------------------------- |
1774| 202        |  Called by non-system application.         |
1775| 401       |  if parameter is invalid.         |
1776| 13900012     | Permission denied.         |
1777| 13900020     | Invalid argument.         |
1778| 14000011       | System inner fail.         |
1779
1780**示例:**
1781
1782```ts
1783import dataSharePredicates from '@ohos.data.dataSharePredicates';
1784
1785async function example() {
1786  try {
1787    console.info('setUserCommentDemo')
1788    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
1789    let fetchOptions: photoAccessHelper.FetchOptions = {
1790      fetchColumns: [],
1791      predicates: predicates
1792    };
1793    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
1794    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
1795    let userComment = 'test_set_user_comment';
1796    await photoAsset.setUserComment(userComment);
1797  } catch (err) {
1798    console.error(`setUserCommentDemoPromise failed with error: ${err.code}, ${err.message}`);
1799  }
1800}
1801```
1802
1803### setUserComment<sup>(deprecated)</sup>
1804
1805setUserComment(userComment: string, callback: AsyncCallback&lt;void&gt;): void
1806
1807修改图片或者视频的备注信息,该方法使用callback形式来返回结果。
1808
1809> **说明:**
1810>
1811> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setUserComment](#setusercomment11)替代。
1812
1813**注意**:此接口只可修改图片或者视频的备注信息。
1814
1815**系统接口**:此接口为系统接口。
1816
1817**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1818
1819**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1820
1821**参数:**
1822
1823| 参数名   | 类型                      | 必填 | 说明       |
1824| -------- | ------------------------- | ---- | ---------- |
1825| userComment | string | 是   | 待修改的图片或视频的备注信息,备注信息最长为420字符。 |
1826| callback | AsyncCallback&lt;void&gt; | 是   | callback返回void。 |
1827
1828**错误码:**
1829
1830接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1831
1832| 错误码ID | 错误信息 |
1833| -------- | ---------------------------------------- |
1834| 202        |  Called by non-system application.         |
1835| 401       |  if parameter is invalid.         |
1836| 13900012     | Permission denied.         |
1837| 13900020     | Invalid argument.         |
1838| 14000011       | System inner fail.         |
1839
1840**示例:**
1841
1842```ts
1843import dataSharePredicates from '@ohos.data.dataSharePredicates';
1844
1845async function example() {
1846  try {
1847    console.info('setUserCommentDemo')
1848    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
1849    let fetchOptions: photoAccessHelper.FetchOptions = {
1850      fetchColumns: [],
1851      predicates: predicates
1852    };
1853    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
1854    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
1855    let userComment = 'test_set_user_comment';
1856    photoAsset.setUserComment(userComment, (err) => {
1857      if (err === undefined) {
1858        console.info('setUserComment successfully');
1859      } else {
1860        console.error(`setUserComment failed with error: ${err.code}, ${err.message}`);
1861      }
1862    });
1863  } catch (err) {
1864    console.error(`setUserCommentDemoCallback failed with error: ${err.code}, ${err.message}`);
1865  }
1866}
1867```
1868
1869### setPending<sup>11+</sup>
1870
1871setPending(pendingState: boolean, callback: AsyncCallback&lt;void&gt;): void
1872
1873为图片或视频资源设置pending状态,该方法使用callback形式来返回结果。
1874
1875将文件通过`setPending(true)`设置为pending状态后,只能通过`setPending(false)`解除pending状态。可以通过`photoAsset.get(photoAccessHelper.PhotoKeys.PENDING)`的方式获取是否为pending状态,pending状态下返回true,否则返回false。
1876
1877**注意**:setPending只能在文件的创建期使用,在文件的首次创建流程的close之后,无法通过setPending(true)将文件设置为pending状态。
1878
1879**系统接口**:此接口为系统接口。
1880
1881**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1882
1883**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1884
1885**参数:**
1886
1887| 参数名        | 类型      | 必填   | 说明                                 |
1888| ---------- | ------- | ---- | ---------------------------------- |
1889| pendingState | boolean | 是    | 设置的pending状态,true为设置pending状态,false为解除pending状态 |
1890| callback | AsyncCallback&lt;void&gt; | 是    | Callback对象,返回void |
1891
1892**错误码:**
1893
1894接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1895
1896| 错误码ID | 错误信息 |
1897| -------- | ---------------------------------------- |
1898| 201   | Permission denied.        |
1899| 202   | Called by non-system application.         |
1900| 401   | if parameter is invalid.         |
1901| 14000011   | System inner fail.        |
1902
1903**示例:**
1904
1905```ts
1906async function example() {
1907  try {
1908    console.info('setPendingCallbackDemo');
1909    let testFileName: string = 'testFile' + Date.now() + '.jpg';
1910    let photoAsset = await phAccessHelper.createAsset(testFileName);
1911    let fd = await photoAsset.open('rw');
1912    photoAsset.setPending(true, async (err) => {
1913      if (err !== undefined) {
1914        console.error(`setPending(true) failed with error: ${err.code}, ${err.message}`);
1915        return;
1916      }
1917      // write photo buffer in fd
1918      photoAsset.setPending(false, async (err) => {
1919        if (err !== undefined) {
1920          console.error(`setPending(false) failed with error: ${err.code}, ${err.message}`);
1921          return;
1922        }
1923        await photoAsset.close(fd);
1924      });
1925    });
1926  } catch (err) {
1927    console.error(`setPendingCallbackDemo failed with error: ${err.code}, ${err.message}`);
1928  }
1929}
1930```
1931
1932### setPending<sup>11+</sup>
1933
1934setPending(pendingState: boolean): Promise&lt;void&gt;
1935
1936为图片或视频资源设置pending状态,该方法使用promise形式来返回结果。
1937
1938将文件通过`setPending(true)`设置为pending状态后,只能通过`setPending(false)`解除pending状态。可以通过`photoAsset.get(photoAccessHelper.PhotoKeys.PENDING)`的方式获取是否为pending状态,pending状态下返回true,否则返回false。
1939
1940**注意**:setPending只能在文件的创建期使用,在文件的首次创建流程的close之后,无法通过setPending(true)将文件设置为pending状态。
1941
1942**系统接口**:此接口为系统接口。
1943
1944**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
1945
1946**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
1947
1948**参数:**
1949
1950| 参数名        | 类型      | 必填   | 说明                                 |
1951| ---------- | ------- | ---- | ---------------------------------- |
1952| pendingState | boolean | 是    | 设置的pending状态,true为设置pending状态,false为解除pending状态。 |
1953
1954**返回值:**
1955
1956| 类型                                    | 说明              |
1957| --------------------------------------- | ----------------- |
1958|Promise&lt;boolean&gt; | Promise对象,返回void。 |
1959
1960**错误码:**
1961
1962接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
1963
1964| 错误码ID | 错误信息 |
1965| -------- | ---------------------------------------- |
1966| 201   | Permission denied.        |
1967| 202   | Called by non-system application.         |
1968| 401   | if parameter is invalid.         |
1969| 14000011   | System inner fail.        |
1970
1971**示例:**
1972
1973```ts
1974async function example() {
1975  try {
1976    console.info('setPendingPromiseDemo');
1977    let testFileName: string = 'testFile' + Date.now() + '.jpg';
1978    let photoAsset = await phAccessHelper.createAsset(testFileName);
1979    let fd = await photoAsset.open('rw');
1980    await photoAsset.setPending(true);
1981    // write photo buffer in fd
1982    photoAsset.setPending(false);
1983    await photoAsset.close(fd);
1984  } catch (err) {
1985    console.error(`setPendingPromiseDemo failed with error: ${err.code}, ${err.message}`);
1986  }
1987}
1988```
1989
1990### isEdited<sup>11+</sup>
1991
1992isEdited(callback: AsyncCallback&lt;boolean&gt;): void
1993
1994查询图片或视频资源是否被编辑过,该方法使用callback形式来返回结果。
1995
1996**系统接口**:此接口为系统接口。
1997
1998**需要权限**:ohos.permission.READ_IMAGEVIDEO
1999
2000**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2001
2002**参数:**
2003
2004| 参数名        | 类型      | 必填   | 说明                                 |
2005| ---------- | ------- | ---- | ---------------------------------- |
2006| callback | AsyncCallback&lt;boolean&gt; | 是    | Callback对象,返回图片或视频资源是否被编辑过 |
2007
2008**错误码:**
2009
2010接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2011
2012| 错误码ID | 错误信息 |
2013| -------- | ---------------------------------------- |
2014| 201   | Permission denied.        |
2015| 202   | Called by non-system application.         |
2016| 401   | if parameter is invalid.         |
2017| 14000011   | System inner fail.        |
2018
2019**示例:**
2020
2021```ts
2022import dataSharePredicates from '@ohos.data.dataSharePredicates';
2023
2024async function example() {
2025  try {
2026    console.info('isEditedCallbackDemo')
2027    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2028    let fetchOptions: photoAccessHelper.FetchOptions = {
2029      fetchColumns: [],
2030      predicates: predicates
2031    };
2032    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2033    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2034    photoAsset.isEdited((err, isEdited) => {
2035      if (err === undefined) {
2036        if (isEdited === true) {
2037          console.info('Photo is edited');
2038        } else {
2039          console.info('Photo is not edited');
2040        }
2041      } else {
2042        console.error(`isEdited failed with error: ${err.code}, ${err.message}`);
2043      }
2044    });
2045  } catch (err) {
2046    console.error(`isEditedDemoCallback failed with error: ${err.code}, ${err.message}`);
2047  }
2048}
2049```
2050
2051### isEdited<sup>11+</sup>
2052
2053isEdited(): Promise&lt;boolean&gt;
2054
2055查询图片或视频资源是否被编辑过,该方法使用promise形式来返回结果。
2056
2057**系统接口**:此接口为系统接口。
2058
2059**需要权限**:ohos.permission.READ_IMAGEVIDEO
2060
2061**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2062
2063**返回值:**
2064
2065| 类型                                    | 说明              |
2066| --------------------------------------- | ----------------- |
2067|Promise&lt;boolean&gt; | Promise对象,返回图片或视频资源是否被编辑过。 |
2068
2069
2070**错误码:**
2071
2072接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2073
2074| 错误码ID | 错误信息 |
2075| -------- | ---------------------------------------- |
2076| 201   | Permission denied.        |
2077| 202   | Called by non-system application.         |
2078| 401   | if parameter is invalid.         |
2079| 14000011   | System inner fail.        |
2080
2081**示例:**
2082
2083```ts
2084import dataSharePredicates from '@ohos.data.dataSharePredicates';
2085
2086async function example() {
2087  try {
2088    console.info('isEditedPromiseDemo')
2089    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2090    let fetchOptions: photoAccessHelper.FetchOptions = {
2091      fetchColumns: [],
2092      predicates: predicates
2093    };
2094    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2095    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2096    let isEdited = await photoAsset.isEdited();
2097    if (isEdited === true) {
2098      console.info('Photo is edited');
2099    } else {
2100      console.info('Photo is not edited');
2101    }
2102  } catch (err) {
2103    console.error(`isEditedDemoCallback failed with error: ${err.code}, ${err.message}`);
2104  }
2105}
2106```
2107
2108### requestEditData<sup>11+</sup>
2109
2110requestEditData(callback: AsyncCallback&lt;string&gt;): void
2111
2112获得图片或视频资源的编辑数据,该方法使用callback形式来返回结果。
2113
2114如果资源未编辑过,则返回一个空字符串。
2115
2116**系统接口**:此接口为系统接口。
2117
2118**需要权限**:ohos.permission.READ_IMAGEVIDEO
2119
2120**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2121
2122**参数:**
2123
2124| 参数名        | 类型      | 必填   | 说明                                 |
2125| ---------- | ------- | ---- | ---------------------------------- |
2126| callback | AsyncCallback&lt;string&gt; | 是    | Callback对象,返回图片或视频资源的编辑数据 |
2127
2128**错误码:**
2129
2130接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2131
2132| 错误码ID | 错误信息 |
2133| -------- | ---------------------------------------- |
2134| 201   | Permission denied.        |
2135| 202   | Called by non-system application.         |
2136| 401   | if parameter is invalid.         |
2137| 14000011   | System inner fail.        |
2138
2139**示例:**
2140
2141```ts
2142import dataSharePredicates from '@ohos.data.dataSharePredicates';
2143
2144async function example() {
2145  try {
2146    console.info('requestEditDataCallbackDemo')
2147    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2148    let fetchOptions: photoAccessHelper.FetchOptions = {
2149      fetchColumns: [],
2150      predicates: predicates
2151    };
2152    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2153    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2154    photoAsset.requestEditData((err, editdata) => {
2155      if (err === undefined) {
2156        console.info('Editdata is ' + editdata);
2157      } else {
2158        console.error(`requestEditData failed with error: ${err.code}, ${err.message}`);
2159      }
2160    });
2161  } catch (err) {
2162    console.error(`requestEditDataCallbackDemo failed with error: ${err.code}, ${err.message}`);
2163  }
2164}
2165```
2166
2167### requestEditData<sup>11+</sup>
2168
2169requestEditData(): Promise&lt;string&gt;
2170
2171获得图片或视频资源的编辑数据,该方法使用promise形式来返回结果。
2172
2173如果资源未编辑过,则返回一个空字符串。
2174
2175**系统接口**:此接口为系统接口。
2176
2177**需要权限**:ohos.permission.READ_IMAGEVIDEO
2178
2179**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2180
2181**返回值:**
2182
2183| 类型                                    | 说明              |
2184| --------------------------------------- | ----------------- |
2185|Promise&lt;string&gt; | Promise对象,返回图片或视频资源的编辑数据。 |
2186
2187
2188**错误码:**
2189
2190接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2191
2192| 错误码ID | 错误信息 |
2193| -------- | ---------------------------------------- |
2194| 201   | Permission denied.        |
2195| 202   | Called by non-system application.         |
2196| 401   | if parameter is invalid.         |
2197| 14000011   | System inner fail.        |
2198
2199**示例:**
2200
2201```ts
2202import dataSharePredicates from '@ohos.data.dataSharePredicates';
2203
2204async function example() {
2205  try {
2206    console.info('requestEditDataPromiseDemo')
2207    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2208    let fetchOptions: photoAccessHelper.FetchOptions = {
2209      fetchColumns: [],
2210      predicates: predicates
2211    };
2212    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2213    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2214    let editdata: string = await photoAsset.requestEditData();
2215    console.info('Editdata is ' + editdata);
2216  } catch (err) {
2217    console.error(`requestEditDataPromiseDemo failed with error: ${err.code}, ${err.message}`);
2218  }
2219}
2220```
2221
2222### getEditData<sup>11+</sup>
2223
2224getEditData(): Promise&lt;MediaAssetEditData&gt;
2225
2226获得资产编辑数据,该方法使用promise形式来返回结果。
2227
2228如果资源未编辑过,则返回的编辑数据的内容为空字符串。
2229
2230**系统接口**:此接口为系统接口。
2231
2232**需要权限**:ohos.permission.READ_IMAGEVIDEO
2233
2234**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2235
2236**返回值:**
2237
2238| 类型                                    | 说明              |
2239| --------------------------------------- | ----------------- |
2240|Promise&lt;[MediaAssetEditData](#mediaasseteditdata11)&gt; | Promise对象,返回资产编辑数据。 |
2241
2242**错误码:**
2243
2244接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2245
2246| 错误码ID | 错误信息 |
2247| -------- | ---------------------------------------- |
2248| 201   | Permission denied.        |
2249| 202   | Called by non-system application.         |
2250| 401   | if parameter is invalid.         |
2251| 14000011   | System inner fail.        |
2252
2253**示例:**
2254
2255```ts
2256import dataSharePredicates from '@ohos.data.dataSharePredicates';
2257
2258async function example() {
2259  try {
2260    console.info('getEditDataDemo')
2261    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2262    let fetchOptions: photoAccessHelper.FetchOptions = {
2263      fetchColumns: [],
2264      predicates: predicates
2265    };
2266    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2267    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2268    let assetEditData: photoAccessHelper.MediaAssetEditData = await photoAsset.getEditData();
2269    let data: string = assetEditData.data;
2270    console.info('edit data is ' + data);
2271  } catch (err) {
2272    console.error(`getEditDataDemo failed with error: ${err.code}, ${err.message}`);
2273  }
2274}
2275```
2276
2277### requestSource<sup>11+</sup>
2278
2279requestSource(callback: AsyncCallback&lt;number&gt;): void
2280
2281打开源文件并返回fd,该方法使用callback形式来返回结果。
2282
2283**系统接口**:此接口为系统接口。
2284
2285**需要权限**:ohos.permission.READ_IMAGEVIDEO
2286
2287**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2288
2289**参数:**
2290
2291| 参数名        | 类型      | 必填   | 说明                                 |
2292| ---------- | ------- | ---- | ---------------------------------- |
2293| callback | AsyncCallback&lt;number&gt; | 是    | Callback对象,返回源文件fd。 |
2294
2295**错误码:**
2296
2297接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2298
2299| 错误码ID | 错误信息 |
2300| -------- | ---------------------------------------- |
2301| 201   | Permission denied.        |
2302| 202   | Called by non-system application.         |
2303| 401   | if parameter is invalid.         |
2304| 14000011   | System inner fail.        |
2305
2306**示例:**
2307
2308```ts
2309import dataSharePredicates from '@ohos.data.dataSharePredicates';
2310
2311async function example() {
2312  try {
2313    console.info('requsetSourceCallbackDemo')
2314    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2315    let fetchOptions: photoAccessHelper.FetchOptions = {
2316      fetchColumns: [],
2317      predicates: predicates
2318    };
2319    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2320    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2321    photoAsset.requestSource((err, fd) => {
2322      if (err === undefined) {
2323        console.info('Source fd is ' + fd);
2324      } else {
2325        console.error(`requestSource failed with error: ${err.code}, ${err.message}`);
2326      }
2327    });
2328  } catch (err) {
2329    console.error(`requsetSourceCallbackDemo failed with error: ${err.code}, ${err.message}`);
2330  }
2331}
2332```
2333
2334### requestSource<sup>11+</sup>
2335
2336requestSource(): Promise&lt;number&gt;
2337
2338打开源文件并返回fd,该方法使用promise形式来返回结果。
2339
2340**系统接口**:此接口为系统接口。
2341
2342**需要权限**:ohos.permission.READ_IMAGEVIDEO
2343
2344**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2345
2346**返回值:**
2347
2348| 类型                                    | 说明              |
2349| --------------------------------------- | ----------------- |
2350|Promise&lt;number&gt; | Promise对象,返回源文件fd。 |
2351
2352**错误码:**
2353
2354接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2355
2356| 错误码ID | 错误信息 |
2357| -------- | ---------------------------------------- |
2358| 201   | Permission denied.        |
2359| 202   | Called by non-system application.         |
2360| 401   | if parameter is invalid.         |
2361| 14000011   | System inner fail.        |
2362
2363**示例:**
2364
2365```ts
2366import dataSharePredicates from '@ohos.data.dataSharePredicates';
2367
2368async function example() {
2369  try {
2370    console.info('requsetSourcePromiseDemo')
2371    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2372    let fetchOptions: photoAccessHelper.FetchOptions = {
2373      fetchColumns: [],
2374      predicates: predicates
2375    };
2376    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2377    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2378    let fd = await photoAsset.requestSource();
2379    console.info('Source fd is ' + fd);
2380  } catch (err) {
2381    console.error(`requsetSourcePromiseDemo failed with error: ${err.code}, ${err.message}`);
2382  }
2383}
2384```
2385
2386### commitEditedAsset<sup>11+</sup>
2387
2388commitEditedAsset(editData: string, uri: string, callback: AsyncCallback&lt;void&gt;)
2389
2390提交编辑数据以及编辑后的图片或视频,该方法使用callback形式来返回结果。
2391
2392通过uri将编辑后的文件传递给媒体库,uri是编辑后的文件在应用沙箱下的FileUri,可参考[FileUri](../apis-core-file-kit/js-apis-file-fileuri.md)。
2393
2394**注意**:新的编辑数据提交后,将覆盖掉原来的编辑数据。
2395
2396**系统接口**:此接口为系统接口。
2397
2398**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
2399
2400**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2401
2402**参数:**
2403
2404| 参数名        | 类型      | 必填   | 说明                                 |
2405| ---------- | ------- | ---- | ---------------------------------- |
2406| editData | string | 是    | 提交的编辑数据。 |
2407| uri | string | 是    | 提交的编辑后的图片或视频,在应用沙箱下的uri。 |
2408| callback | AsyncCallback&lt;void&gt; | 是    | Callback对象,返回void。 |
2409
2410**错误码:**
2411
2412接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2413
2414| 错误码ID | 错误信息 |
2415| -------- | ---------------------------------------- |
2416| 201   | Permission denied.        |
2417| 202   | Called by non-system application.         |
2418| 401   | if parameter is invalid.         |
2419| 14000011   | System inner fail.        |
2420
2421**示例:**
2422
2423```ts
2424import dataSharePredicates from '@ohos.data.dataSharePredicates';
2425
2426async function example() {
2427  try {
2428    console.info('commitEditedAssetCallbackDemo')
2429    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2430    let fetchOptions: photoAccessHelper.FetchOptions = {
2431      fetchColumns: [],
2432      predicates: predicates
2433    };
2434    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2435    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2436    let editData = '123456';
2437    let uri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg';
2438    photoAsset.commitEditedAsset(editData, uri, (err) => {
2439      if (err === undefined) {
2440        console.info('commitEditedAsset is successful');
2441      } else {
2442        console.error(`commitEditedAsset failed with error: ${err.code}, ${err.message}`);
2443      }
2444    });
2445  } catch (err) {
2446    console.error(`commitEditedAssetCallbackDemo failed with error: ${err.code}, ${err.message}`);
2447  }
2448}
2449```
2450
2451### commitEditedAsset<sup>11+</sup>
2452
2453commitEditedAsset(editData: string, uri: string): Promise&lt;void&gt;
2454
2455提交编辑数据以及编辑后的图片或视频,该方法使用promise形式来返回结果。
2456
2457通过uri将编辑后的文件传递给媒体库,uri是编辑后的文件在应用沙箱下的FileUri,可参考[FileUri](../apis-core-file-kit/js-apis-file-fileuri.md)。
2458
2459**注意**:新的编辑数据提交后,将覆盖掉原来的编辑数据。
2460
2461**系统接口**:此接口为系统接口。
2462
2463**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
2464
2465**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2466
2467**参数:**
2468
2469| 参数名        | 类型      | 必填   | 说明                                 |
2470| ---------- | ------- | ---- | ---------------------------------- |
2471| editData | string | 是    | 提交的编辑数据。 |
2472| uri | string | 是    | 提交的编辑后的图片或视频,在应用沙箱下的uri。 |
2473
2474**返回值:**
2475
2476| 类型                                    | 说明              |
2477| --------------------------------------- | ----------------- |
2478|Promise&lt;void&gt; | Promise对象,返回void。 |
2479
2480**错误码:**
2481
2482接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2483
2484| 错误码ID | 错误信息 |
2485| -------- | ---------------------------------------- |
2486| 201   | Permission denied.        |
2487| 202   | Called by non-system application.         |
2488| 401   | if parameter is invalid.         |
2489| 14000011   | System inner fail.        |
2490
2491**示例:**
2492
2493```ts
2494import dataSharePredicates from '@ohos.data.dataSharePredicates';
2495
2496async function example() {
2497  try {
2498    console.info('commitEditedAssetPromiseDemo')
2499    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2500    let fetchOptions: photoAccessHelper.FetchOptions = {
2501      fetchColumns: [],
2502      predicates: predicates
2503    };
2504    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2505    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2506    let editData = '123456';
2507    let uri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg';
2508    await photoAsset.commitEditedAsset(editData, uri);
2509    console.info('commitEditedAsset is successful');
2510  } catch (err) {
2511    console.error(`commitEditedAssetPromiseDemo failed with error: ${err.code}, ${err.message}`);
2512  }
2513}
2514```
2515
2516### revertToOriginal<sup>11+</sup>
2517
2518revertToOriginal(callback: AsyncCallback&lt;void&gt;)
2519
2520回退到编辑前的状态,该方法使用callback形式来返回结果。
2521
2522**注意**:调用该接口后,编辑数据和编辑后的图片或视频资源都将被删除,无法恢复,请谨慎调用。
2523
2524**系统接口**:此接口为系统接口。
2525
2526**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
2527
2528**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2529
2530**参数:**
2531
2532| 参数名        | 类型      | 必填   | 说明                                 |
2533| ---------- | ------- | ---- | ---------------------------------- |
2534| callback | AsyncCallback&lt;void&gt; | 是    | Callback对象,返回void。 |
2535
2536**错误码:**
2537
2538接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2539
2540| 错误码ID | 错误信息 |
2541| -------- | ---------------------------------------- |
2542| 201   | Permission denied.        |
2543| 202   | Called by non-system application.         |
2544| 401   | if parameter is invalid.         |
2545| 14000011   | System inner fail.        |
2546
2547**示例:**
2548
2549```ts
2550import dataSharePredicates from '@ohos.data.dataSharePredicates';
2551
2552async function example() {
2553  try {
2554    console.info('revertToOriginalCallbackDemo')
2555    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2556    let fetchOptions: photoAccessHelper.FetchOptions = {
2557      fetchColumns: [],
2558      predicates: predicates
2559    };
2560    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2561    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2562    photoAsset.revertToOriginal((err) => {
2563      if (err === undefined) {
2564        console.info('revertToOriginal is successful');
2565      } else {
2566        console.error(`revertToOriginal failed with error: ${err.code}, ${err.message}`);
2567      }
2568    });
2569  } catch (err) {
2570    console.error(`revertToOriginalCallbackDemo failed with error: ${err.code}, ${err.message}`);
2571  }
2572}
2573```
2574
2575### revertToOriginal<sup>11+</sup>
2576
2577revertToOriginal(): Promise&lt;void&gt;
2578
2579回退到编辑前的状态,该方法使用promise形式来返回结果。
2580
2581**注意**:调用该接口后,编辑数据和编辑后的图片或视频资源都将被删除,无法恢复,请谨慎调用。
2582
2583**系统接口**:此接口为系统接口。
2584
2585**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
2586
2587**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2588
2589**返回值:**
2590
2591| 类型                                    | 说明              |
2592| --------------------------------------- | ----------------- |
2593|Promise&lt;string&gt; | Promise对象,返回void。 |
2594
2595**错误码:**
2596
2597接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2598
2599| 错误码ID | 错误信息 |
2600| -------- | ---------------------------------------- |
2601| 201   | Permission denied.        |
2602| 202   | Called by non-system application.         |
2603| 401   | if parameter is invalid.         |
2604| 14000011   | System inner fail.        |
2605
2606**示例:**
2607
2608```ts
2609import dataSharePredicates from '@ohos.data.dataSharePredicates';
2610
2611async function example() {
2612  try {
2613    console.info('revertToOriginalPromiseDemo')
2614    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2615    let fetchOptions: photoAccessHelper.FetchOptions = {
2616      fetchColumns: [],
2617      predicates: predicates
2618    };
2619    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
2620    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2621    photoAsset.revertToOriginal();
2622    console.info('revertToOriginal is successful');
2623  } catch (err) {
2624    console.error(`revertToOriginalPromiseDemo failed with error: ${err.code}, ${err.message}`);
2625  }
2626}
2627```
2628
2629### requestPhoto<sup>11+</sup>
2630
2631requestPhoto(callback: AsyncCallback&lt;image.PixelMap&gt;): string
2632
2633通过callback的形式,获取资源的快速缩略图和普通缩略图。
2634
2635快速缩略图尺寸为128\*128,普通缩略图尺寸为256\*256。应用调用接口后,callback将返回两次缩略图对象,第一次为快速缩略图,第二次为普通缩略图。
2636
2637**系统接口**:此接口为系统接口。
2638
2639**需要权限**:ohos.permission.READ_IMAGEVIDEO
2640
2641**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2642
2643**参数:**
2644
2645| 参数名        | 类型      | 必填   | 说明                                 |
2646| ---------- | ------- | ---- | ---------------------------------- |
2647| callback | AsyncCallback&lt;[image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7)&gt; | 是    | Callback对象,返回获取的缩略图,调用2次。 |
2648
2649**返回值:**
2650
2651| 类型                                    | 说明              |
2652| --------------------------------------- | ----------------- |
2653| string | 本次获取任务的id。 |
2654
2655**错误码:**
2656
2657接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2658
2659| 错误码ID | 错误信息 |
2660| -------- | ---------------------------------------- |
2661| 201   | Permission denied.        |
2662| 202   | Called by non-system application.         |
2663| 401   | if parameter is invalid.         |
2664| 14000011   | System inner fail.        |
2665
2666**示例:**
2667
2668```ts
2669import dataSharePredicates from '@ohos.data.dataSharePredicates';
2670import image from '@ohos.multimedia.image'
2671
2672async function example() {
2673  try {
2674    console.info('requestPhotoDemo')
2675    let options: photoAccessHelper.FetchOptions = {
2676      fetchColumns: [],
2677      predicates: new dataSharePredicates.DataSharePredicates()
2678    }
2679    let fetchResult = await phAccessHelper.getAssets(options);
2680    let photoAsset = await fetchResult.getFirstObject();
2681    let taskId: string = photoAsset.requestPhoto(async (err, pixel: image.PixelMap) => {
2682      if (err === undefined) {
2683        console.info("requestSource in, size: " + JSON.stringify((await pixel.getImageInfo()).size))
2684      } else {
2685        console.error(`requestSource failed with error: ${err.code}, ${err.message}`);
2686      }
2687    })
2688    console.info('requestSource taskId: ' + taskId)
2689  } catch (err) {
2690    console.error(`requestPhotoDemo failed with error: ${err.code}, ${err.message}`);
2691  }
2692}
2693```
2694
2695### requestPhoto<sup>11+</sup>
2696
2697requestPhoto(options: RequestPhotoOptions, callback: AsyncCallback&lt;image.PixelMap&gt;): string
2698
2699通过callback的形式,根据传入的选项,获取资源的缩略图。
2700
2701**系统接口**:此接口为系统接口。
2702
2703**需要权限**:ohos.permission.READ_IMAGEVIDEO
2704
2705**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2706
2707**参数:**
2708
2709| 参数名        | 类型      | 必填   | 说明                                 |
2710| ---------- | ------- | ---- | ---------------------------------- |
2711| options | [RequestPhotoOptions](#requestphotooptions11) | 是    | 获取资源缩略图的选项。 |
2712| callback | AsyncCallback&lt;[image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7)&gt; | 是    | Callback对象,返回获取的缩略图,根据选项的设置可能调用超过1次。 |
2713
2714**返回值:**
2715
2716| 类型                                    | 说明              |
2717| --------------------------------------- | ----------------- |
2718| string | 本次获取任务的id。 |
2719
2720**错误码:**
2721
2722接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2723
2724| 错误码ID | 错误信息 |
2725| -------- | ---------------------------------------- |
2726| 201   | Permission denied.        |
2727| 202   | Called by non-system application.         |
2728| 401   | if parameter is invalid.         |
2729| 14000011   | System inner fail.        |
2730
2731**示例:**
2732
2733```ts
2734import dataSharePredicates from '@ohos.data.dataSharePredicates';
2735import image from '@ohos.multimedia.image'
2736
2737async function example() {
2738  try {
2739    console.info('requestPhotoDemo')
2740    let options: photoAccessHelper.FetchOptions = {
2741      fetchColumns: [],
2742      predicates: new dataSharePredicates.DataSharePredicates()
2743    }
2744    let fetchResult = await phAccessHelper.getAssets(options);
2745    let photoAsset = await fetchResult.getFirstObject();
2746    let taskId: string = photoAsset.requestPhoto({
2747      "size": {
2748        "width": 256,
2749        "height": 256
2750      },
2751      "requestPhotoType": photoAccessHelper.RequestPhotoType.REQUEST_ALL_THUMBNAILS
2752    }, async (err, pixel: image.PixelMap) => {
2753      if (err === undefined) {
2754        console.info("requestSource in, size: " + JSON.stringify((await pixel.getImageInfo()).size))
2755      } else {
2756        console.error(`requestSource failed with error: ${err.code}, ${err.message}`);
2757      }
2758    })
2759    console.info('requestSource taskId: ' + taskId)
2760  } catch (err) {
2761    console.error(`requestPhotoDemo failed with error: ${err.code}, ${err.message}`);
2762  }
2763}
2764```
2765
2766### cancelPhotoRequest<sup>11+</sup>
2767
2768cancelPhotoRequest(requestId: string): void
2769
2770根据id取消指定的获取媒体缩略图的任务。
2771
2772**系统接口**:此接口为系统接口。
2773
2774**需要权限**:ohos.permission.READ_IMAGEVIDEO
2775
2776**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2777
2778**参数:**
2779
2780| 参数名        | 类型      | 必填   | 说明                                 |
2781| ---------- | ------- | ---- | ---------------------------------- |
2782| requestId | string | 是    | 待取消的获取媒体缩略图的任务id。 |
2783
2784**错误码:**
2785
2786接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2787
2788| 错误码ID | 错误信息 |
2789| -------- | ---------------------------------------- |
2790| 201   | Permission denied.        |
2791| 202   | Called by non-system application.         |
2792| 401   | if parameter is invalid.         |
2793| 14000011   | System inner fail.        |
2794
2795**示例:**
2796
2797```ts
2798import dataSharePredicates from '@ohos.data.dataSharePredicates';
2799import image from '@ohos.multimedia.image'
2800
2801async function example() {
2802  try {
2803    console.info('cancelPhotoRequestDemo')
2804    let options: photoAccessHelper.FetchOptions = {
2805      fetchColumns: [],
2806      predicates: new dataSharePredicates.DataSharePredicates()
2807    }
2808    let fetchResult = await phAccessHelper.getAssets(options);
2809    let photoAsset = await fetchResult.getFirstObject();
2810    let taskId: string = photoAsset.requestPhoto({
2811      "size": {
2812        "width": 256,
2813        "height": 256
2814      },
2815      "requestPhotoType": photoAccessHelper.RequestPhotoType.REQUEST_ALL_THUMBNAILS
2816    }, async (err, pixel: image.PixelMap) => {
2817      if (err === undefined) {
2818        console.info("requestSource in, size: " + JSON.stringify((await pixel.getImageInfo()).size))
2819      } else {
2820        console.error(`requestSource failed with error: ${err.code}, ${err.message}`);
2821      }
2822    })
2823    console.info('requestSource taskId: ' + taskId)
2824    photoAsset.cancelPhotoRequest(taskId);
2825  } catch (err) {
2826    console.error(`cancelPhotoRequestDemo failed with error: ${err.code}, ${err.message}`);
2827  }
2828}
2829```
2830
2831### getAnalysisData<sup>11+</sup>
2832
2833getAnalysisData(analysisType: AnalysisType): Promise\<string>
2834
2835根据智慧分析类型获取指定分析结果数据。
2836
2837**系统接口**:此接口为系统接口。
2838
2839**需要权限**:ohos.permission.READ\_IMAGEVIDEO
2840
2841**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2842
2843**参数:**
2844
2845| 参数名          | 类型           | 必填 | 说明           |
2846| :----------- | :----------- | :- | :----------- |
2847| analysisType | [AnalysisType](#analysistype11) | 是  | 需要获取的智慧分析类型。 |
2848
2849**错误码:**
2850
2851接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2852
2853| 错误码ID    | 错误信息                              |
2854| :------- | :-------------------------------- |
2855| 201      | Permission denied.                |
2856| 202      | Called by non-system application. |
2857| 401      | if parameter is invalid.          |
2858| 14000011 | System inner fail.                |
2859
2860**示例:**
2861
2862```ts
2863import dataSharePredicates from '@ohos.data.dataSharePredicates';
2864
2865async function example() {
2866  try {
2867    console.info('getAnalysisDataDemo')
2868    let fetchOptions: photoAccessHelper.FetchOptions = {
2869      fetchColumns: [],
2870      predicates: new dataSharePredicates.DataSharePredicates()
2871    }
2872    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> =
2873      await phAccessHelper.getAssets(fetchOptions);
2874    let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2875    if (photoAsset != undefined) {
2876      let analysisData: string = await photoAsset.getAnalysisData(
2877        photoAccessHelper.AnalysisType.ANALYSIS_OCR);
2878      console.info('get ocr result: ' + JSON.stringify(analysisData));
2879    }
2880    fetchResult.close();
2881  } catch (err) {
2882    console.error(`getAnalysisDataDemofailed with error: ${err.code}, ${err.message}`);
2883  }
2884}
2885```
2886
2887## Album
2888
2889实体相册
2890
2891### recoverAssets<sup>(deprecated)</sup>
2892
2893recoverAssets(assets: Array&lt;PhotoAsset&gt;, callback: AsyncCallback&lt;void&gt;): void
2894
2895从回收站中恢复图片或者视频,需要先在回收站中预置文件资源。该方法使用callback形式来返回结果。
2896
2897> **说明:**
2898>
2899> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.recoverAssets](#recoverassets11)替代。
2900
2901**系统接口**:此接口为系统接口。
2902
2903**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
2904
2905**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2906
2907**参数:**
2908
2909| 参数名   | 类型                      | 必填 | 说明       |
2910| -------- | ------------------------- | ---- | ---------- |
2911| assets | Array&lt;[PhotoAsset](#photoasset)&gt; | 是   | 回收站中待恢复图片或者视频数组。 |
2912| callback | AsyncCallback&lt;void&gt; | 是   | callback返回void。 |
2913
2914**错误码:**
2915
2916接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2917
2918| 错误码ID | 错误信息 |
2919| -------- | ---------------------------------------- |
2920| 202      |  Called by non-system application.         |
2921| 401      |  if parameter is invalid.         |
2922| 13900012     | Permission denied.         |
2923| 13900020     | Invalid argument.         |
2924| 14000011       | System inner fail.         |
2925
2926**示例:**
2927
2928```ts
2929import dataSharePredicates from '@ohos.data.dataSharePredicates';
2930
2931async function example() {
2932  try {
2933    console.info('recoverAssetsDemoCallback');
2934    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
2935    let fetchOption: photoAccessHelper.FetchOptions = {
2936      fetchColumns: [],
2937      predicates: predicates
2938    };
2939    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH);
2940    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
2941    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
2942    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
2943    album.recoverAssets([asset], (err) => {
2944      if (err === undefined) {
2945        console.info('album recoverAssets successfully');
2946      } else {
2947        console.error(`album recoverAssets failed with error: ${err.code}, ${err.message}`);
2948      }
2949    });
2950  } catch (err) {
2951    console.error(`recoverAssetsDemoCallback failed with error: ${err.code}, ${err.message}`);
2952  }
2953}
2954```
2955
2956### recoverAssets<sup>(deprecated)</sup>
2957
2958recoverAssets(assets: Array&lt;PhotoAsset&gt;): Promise&lt;void&gt;
2959
2960从回收站中恢复图片或者视频,需要先在回收站中预置文件资源。该方法使用Promise来返回结果。
2961
2962> **说明:**
2963>
2964> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.recoverAssets](#recoverassets11)替代。
2965
2966**系统接口**:此接口为系统接口。
2967
2968**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
2969
2970**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
2971
2972**参数:**
2973
2974| 参数名   | 类型                      | 必填 | 说明       |
2975| -------- | ------------------------- | ---- | ---------- |
2976| assets | Array&lt;[PhotoAsset](#photoasset)&gt; | 是   | 回收站中待恢复图片或者视频数组。 |
2977
2978**返回值:**
2979
2980| 类型                                    | 说明              |
2981| --------------------------------------- | ----------------- |
2982|Promise&lt;void&gt; | Promise对象,返回void。 |
2983
2984**错误码:**
2985
2986接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
2987
2988| 错误码ID | 错误信息 |
2989| -------- | ---------------------------------------- |
2990| 202      |  Called by non-system application.         |
2991| 401      |  if parameter is invalid.         |
2992| 13900012     | Permission denied.         |
2993| 13900020     | Invalid argument.         |
2994| 14000011       | System inner fail.         |
2995
2996**示例:**
2997
2998```ts
2999import dataSharePredicates from '@ohos.data.dataSharePredicates';
3000import { BusinessError } from '@ohos.base';
3001
3002async function example() {
3003  try {
3004    console.info('recoverAssetsDemoPromise');
3005    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3006    let fetchOption: photoAccessHelper.FetchOptions = {
3007      fetchColumns: [],
3008      predicates: predicates
3009    };
3010    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH);
3011    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
3012    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
3013    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
3014    album.recoverAssets([asset]).then(() => {
3015      console.info('album recoverAssets successfully');
3016    }).catch((err: BusinessError) => {
3017      console.error(`album recoverAssets failed with error: ${err.code}, ${err.message}`);
3018    });
3019  } catch (err) {
3020    console.error(`recoverAssetsDemoPromise failed with error: ${err.code}, ${err.message}`);
3021  }
3022}
3023```
3024
3025### deleteAssets<sup>(deprecated)</sup>
3026
3027deleteAssets(assets: Array&lt;PhotoAsset&gt;, callback: AsyncCallback&lt;void&gt;): void
3028
3029从回收站中彻底删除图片或者视频,需要先在回收站中预置文件资源。该方法使用callback形式来返回结果。
3030
3031> **说明:**
3032>
3033> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.deleteAssets](#deleteassets11)替代。
3034
3035**注意**:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。
3036
3037**系统接口**:此接口为系统接口。
3038
3039**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
3040
3041**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3042
3043**参数:**
3044
3045| 参数名   | 类型                      | 必填 | 说明       |
3046| -------- | ------------------------- | ---- | ---------- |
3047| assets | Array&lt;[PhotoAsset](#photoasset)&gt; | 是   | 回收站中待彻底删除图片或者视频数组。 |
3048| callback | AsyncCallback&lt;void&gt; | 是   | callback返回void。 |
3049
3050**错误码:**
3051
3052接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3053
3054| 错误码ID | 错误信息 |
3055| -------- | ---------------------------------------- |
3056| 202      |  Called by non-system application.         |
3057| 401      |  if parameter is invalid.         |
3058| 13900012     | Permission denied.         |
3059| 13900020     | Invalid argument.         |
3060| 14000011       | System inner fail.         |
3061
3062**示例:**
3063
3064```ts
3065import dataSharePredicates from '@ohos.data.dataSharePredicates';
3066
3067async function example() {
3068  try {
3069    console.info('deleteAssetsDemoCallback');
3070    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3071    let fetchOption: photoAccessHelper.FetchOptions = {
3072      fetchColumns: [],
3073      predicates: predicates
3074    };
3075    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH);
3076    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
3077    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
3078    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
3079    album.deleteAssets([asset], (err) => {
3080      if (err === undefined) {
3081        console.info('album deleteAssets successfully');
3082      } else {
3083        console.error(`album deleteAssets failed with error: ${err.code}, ${err.message}`);
3084      }
3085    });
3086  } catch (err) {
3087    console.error(`deleteAssetsDemoCallback failed with error: ${err.code}, ${err.message}`);
3088  }
3089}
3090```
3091
3092### deleteAssets<sup>(deprecated)</sup>
3093
3094deleteAssets(assets: Array&lt;PhotoAsset&gt;): Promise&lt;void&gt;
3095
3096从回收站中彻底删除图片或者视频,需要先在回收站中预置文件资源。该方法使用Promise来返回结果。
3097
3098> **说明:**
3099>
3100> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.deleteAssets](#deleteassets11)替代。
3101
3102**注意**:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。
3103
3104**系统接口**:此接口为系统接口。
3105
3106**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
3107
3108**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3109
3110**参数:**
3111
3112| 参数名   | 类型                      | 必填 | 说明       |
3113| -------- | ------------------------- | ---- | ---------- |
3114| assets | Array&lt;[PhotoAsset](#photoasset)&gt; | 是   | 回收站中待彻底删除图片或者视频数组。 |
3115
3116**返回值:**
3117
3118| 类型                                    | 说明              |
3119| --------------------------------------- | ----------------- |
3120|Promise&lt;void&gt; | Promise对象,返回void。 |
3121
3122**错误码:**
3123
3124接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3125
3126| 错误码ID | 错误信息 |
3127| -------- | ---------------------------------------- |
3128| 202      |  Called by non-system application.         |
3129| 401      |  if parameter is invalid.         |
3130| 13900012     | Permission denied.         |
3131| 13900020     | Invalid argument.         |
3132| 14000011       | System inner fail.         |
3133
3134**示例:**
3135
3136```ts
3137import dataSharePredicates from '@ohos.data.dataSharePredicates';
3138import { BusinessError } from '@ohos.base';
3139
3140async function example() {
3141  try {
3142    console.info('deleteAssetsDemoPromise');
3143    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3144    let fetchOption: photoAccessHelper.FetchOptions = {
3145      fetchColumns: [],
3146      predicates: predicates
3147    };
3148    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH);
3149    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
3150    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
3151    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
3152    album.deleteAssets([asset]).then(() => {
3153      console.info('album deleteAssets successfully');
3154    }).catch((err: BusinessError) => {
3155      console.error(`album deleteAssets failed with error: ${err.code}, ${err.message}`);
3156    });
3157  } catch (err) {
3158    console.error(`deleteAssetsDemoPromise failed with error: ${err.code}, ${err.message}`);
3159  }
3160}
3161```
3162
3163### setCoverUri<sup>(deprecated)</sup>
3164
3165setCoverUri(uri: string, callback: AsyncCallback&lt;void&gt;): void
3166
3167设置相册封面,该方法使用callback形式来返回结果。
3168
3169> **说明:**
3170>
3171> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.setCoverUri](#setcoveruri11)替代。
3172
3173**注意**:此接口只可修改用户相册封面,不允许修改系统相册封面。
3174
3175**系统接口**:此接口为系统接口。
3176
3177**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
3178
3179**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3180
3181**参数:**
3182
3183| 参数名   | 类型                      | 必填 | 说明       |
3184| -------- | ------------------------- | ---- | ---------- |
3185| uri | string | 是   | 待设置为相册封面文件的uri。 |
3186| callback | AsyncCallback&lt;void&gt; | 是   | callback返回void。 |
3187
3188**错误码:**
3189
3190接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3191
3192| 错误码ID | 错误信息 |
3193| -------- | ---------------------------------------- |
3194| 202      |  Called by non-system application.         |
3195| 401      |  if parameter is invalid.         |
3196| 13900012     | Permission denied.         |
3197| 13900020     | Invalid argument.         |
3198| 14000011       | System inner fail.         |
3199
3200**示例:**
3201
3202```ts
3203import dataSharePredicates from '@ohos.data.dataSharePredicates';
3204
3205async function example() {
3206  try {
3207    console.info('setCoverUriDemoCallback');
3208    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3209    let fetchOption: photoAccessHelper.FetchOptions = {
3210      fetchColumns: [],
3211      predicates: predicates
3212    };
3213    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
3214    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
3215    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
3216    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
3217    album.setCoverUri(asset.uri, (err) => {
3218      if (err === undefined) {
3219        console.info('album setCoverUri successfully');
3220      } else {
3221        console.error(`album setCoverUri failed with error: ${err.code}, ${err.message}`);
3222      }
3223    });
3224  } catch (err) {
3225    console.error(`setCoverUriDemoCallback failed with error: ${err.code}, ${err.message}`);
3226  }
3227}
3228```
3229
3230### setCoverUri<sup>(deprecated)</sup>
3231
3232setCoverUri(uri: string): Promise&lt;void&gt;
3233
3234设置相册封面,该方法使用Promise来返回结果。
3235
3236> **说明:**
3237>
3238> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.setCoverUri](#setcoveruri11)替代。
3239
3240**注意**:此接口只可修改用户相册封面,不允许修改系统相册封面。
3241
3242**系统接口**:此接口为系统接口。
3243
3244**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
3245
3246**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3247
3248**参数:**
3249
3250| 参数名   | 类型                      | 必填 | 说明       |
3251| -------- | ------------------------- | ---- | ---------- |
3252| uri | string | 是   | 待设置为相册封面文件的uri。 |
3253
3254**返回值:**
3255
3256| 类型                                    | 说明              |
3257| --------------------------------------- | ----------------- |
3258|Promise&lt;void&gt; | Promise对象,返回void。 |
3259
3260**错误码:**
3261
3262接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3263
3264| 错误码ID | 错误信息 |
3265| -------- | ---------------------------------------- |
3266| 202      |  Called by non-system application.         |
3267| 401      |  if parameter is invalid.         |
3268| 13900012     | Permission denied.         |
3269| 13900020     | Invalid argument.         |
3270| 14000011       | System inner fail.         |
3271**示例:**
3272
3273```ts
3274import dataSharePredicates from '@ohos.data.dataSharePredicates';
3275import { BusinessError } from '@ohos.base';
3276
3277async function example() {
3278  try {
3279    console.info('setCoverUriDemoPromise');
3280    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3281    let fetchOption: photoAccessHelper.FetchOptions = {
3282      fetchColumns: [],
3283      predicates: predicates
3284    };
3285    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
3286    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
3287    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
3288    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
3289    album.setCoverUri(asset.uri).then(() => {
3290      console.info('album setCoverUri successfully');
3291    }).catch((err: BusinessError) => {
3292      console.error(`album setCoverUri failed with error: ${err.code}, ${err.message}`);
3293    });
3294  } catch (err) {
3295    console.error(`setCoverUriDemoPromise failed with error: ${err.code}, ${err.message}`);
3296  }
3297}
3298```
3299
3300## MediaAssetEditData<sup>11+</sup>
3301
3302资产编辑数据。
3303
3304**系统接口**:此接口为系统接口。
3305
3306**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3307
3308### 属性
3309
3310| 名称           | 类型    | 可读   | 可写  | 说明   |
3311| ------------ | ------ | ---- | ---- | ------- |
3312| compatibleFormat | string | 是    | 是    | 编辑数据的格式。**系统接口**:此接口为系统接口。    |
3313| formatVersion | string | 是    | 是   | 编辑数据格式的版本。**系统接口**:此接口为系统接口。    |
3314| data | string | 是    | 是   | 编辑数据的内容。**系统接口**:此接口为系统接口。    |
3315
3316### constructor<sup>11+</sup>
3317
3318constructor(compatibleFormat: string, formatVersion: string)
3319
3320构造函数。
3321
3322**系统接口**:此接口为系统接口。
3323
3324**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3325
3326**参数:**
3327
3328| 参数名   | 类型                      | 必填 | 说明       |
3329| -------- | ------------------------- | ---- | ---------- |
3330| compatibleFormat | string | 是   | 编辑数据的格式。 |
3331| formatVersion | string | 是   | 编辑数据格式的版本。 |
3332
3333**错误码:**
3334
3335接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3336
3337| 错误码ID | 错误信息 |
3338| -------- | ---------------------------------------- |
3339| 202      |  Called by non-system application.         |
3340| 401      |  if parameter is invalid.         |
3341| 14000011       | System inner fail.          |
3342
3343**示例:**
3344
3345```ts
3346let assetEditData: photoAccessHelper.MediaAssetEditData = new photoAccessHelper.MediaAssetEditData('system', '1.0');
3347```
3348
3349## MediaAssetChangeRequest<sup>11+</sup>
3350
3351资产变更请求。
3352
3353**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3354
3355### createAssetRequest<sup>11+</sup>
3356
3357static createAssetRequest(context: Context, displayName: string, options?: PhotoCreateOptions): MediaAssetChangeRequest
3358
3359指定待创建的图片或者视频的文件名,创建资产变更请求。
3360
3361待创建的文件名参数规格为:
3362- 应包含有效文件主名和图片或视频扩展名。
3363- 文件名字符串长度为1~255。
3364- 文件主名中不允许出现非法字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ]
3365
3366**系统接口**:此接口为系统接口。
3367
3368**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3369
3370**参数:**
3371
3372| 参数名  | 类型    | 必填 | 说明                       |
3373| ------- | ------- | ---- | -------------------------- |
3374| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是   | 传入Ability实例的Context。 |
3375| displayName  | string        | 是   | 待创建的图片或者视频文件名。              |
3376| options  | [PhotoCreateOptions](#photocreateoptions)        | 否   | 图片或视频的创建选项。              |
3377
3378**返回值:**
3379
3380| 类型                                    | 说明              |
3381| --------------------------------------- | ----------------- |
3382| [MediaAssetChangeRequest](#mediaassetchangerequest11) | 返回创建资产的变更请求。 |
3383
3384**错误码:**
3385
3386接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3387
3388| 错误码ID | 错误信息 |
3389| -------- | ---------------------------------------- |
3390| 202   |  Called by non-system application.         |
3391| 401      |  if parameter is invalid.         |
3392| 14000001      | Invalid display name.         |
3393| 14000011       | System inner fail.         |
3394
3395**示例:**
3396
3397```ts
3398async function example() {
3399  console.info('createAssetRequestDemo');
3400  try {
3401    let testFileName: string = 'testFile' + Date.now() + '.jpg';
3402    let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, testFileName);
3403    // 需要确保fileUri对应的资源存在
3404    let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg';
3405    assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, fileUri);
3406    await phAccessHelper.applyChanges(assetChangeRequest);
3407    console.info('apply createAssetRequest successfully');
3408  } catch (err) {
3409    console.error(`createAssetRequestDemo failed with error: ${err.code}, ${err.message}`);
3410  }
3411}
3412```
3413
3414### setFavorite<sup>11+</sup>
3415
3416setFavorite(favoriteState: boolean): void
3417
3418将文件设置为收藏文件。
3419
3420**系统接口**:此接口为系统接口。
3421
3422**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3423
3424**参数:**
3425
3426| 参数名        | 类型      | 必填   | 说明                                 |
3427| ---------- | ------- | ---- | ---------------------------------- |
3428| favoriteState | boolean | 是    | 是否设置为收藏文件, true:设置为收藏文件;false:取消收藏。 |
3429
3430**错误码:**
3431
3432接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3433
3434| 错误码ID | 错误信息 |
3435| -------- | ---------------------------------------- |
3436| 202        |  Called by non-system application.         |
3437| 401       |  if parameter is invalid.         |
3438| 14000011       | System inner fail.         |
3439
3440**示例:**
3441
3442```ts
3443import dataSharePredicates from '@ohos.data.dataSharePredicates';
3444import { BusinessError } from '@ohos.base';
3445
3446async function example() {
3447  console.info('setFavoriteDemo');
3448  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3449  let fetchOption: photoAccessHelper.FetchOptions = {
3450    fetchColumns: [],
3451    predicates: predicates
3452  };
3453  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
3454  let asset = await fetchResult.getFirstObject();
3455  let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
3456  assetChangeRequest.setFavorite(true);
3457  phAccessHelper.applyChanges(assetChangeRequest).then(() => {
3458    console.info('apply setFavorite successfully');
3459  }).catch((err: BusinessError) => {
3460    console.error(`apply setFavorite failed with error: ${err.code}, ${err.message}`);
3461  });
3462}
3463```
3464
3465### setHidden<sup>11+</sup>
3466
3467setHidden(hiddenState: boolean): void
3468
3469将文件设置为隐藏文件。
3470
3471**系统接口**:此接口为系统接口。
3472
3473**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3474
3475**参数:**
3476
3477| 参数名        | 类型      | 必填   | 说明                                 |
3478| ---------- | ------- | ---- | ---------------------------------- |
3479| hiddenState | boolean  | 是    | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 |
3480
3481**错误码:**
3482
3483接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3484
3485| 错误码ID | 错误信息 |
3486| -------- | ---------------------------------------- |
3487| 202        |  Called by non-system application.         |
3488| 401       |  if parameter is invalid.         |
3489| 14000011       | System inner fail.         |
3490
3491**示例:**
3492
3493```ts
3494import dataSharePredicates from '@ohos.data.dataSharePredicates';
3495import { BusinessError } from '@ohos.base';
3496
3497async function example() {
3498  console.info('setHiddenDemo');
3499  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3500  let fetchOption: photoAccessHelper.FetchOptions = {
3501    fetchColumns: [],
3502    predicates: predicates
3503  };
3504  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
3505  let asset = await fetchResult.getFirstObject();
3506  let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
3507  assetChangeRequest.setHidden(true);
3508  phAccessHelper.applyChanges(assetChangeRequest).then(() => {
3509    console.info('apply setHidden successfully');
3510  }).catch((err: BusinessError) => {
3511    console.error(`apply setHidden failed with error: ${err.code}, ${err.message}`);
3512  });
3513}
3514```
3515
3516### setUserComment<sup>11+</sup>
3517
3518setUserComment(userComment: string): void
3519
3520修改媒体资产的备注信息。
3521
3522**系统接口**:此接口为系统接口。
3523
3524**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3525
3526**参数:**
3527
3528| 参数名        | 类型      | 必填   | 说明                                 |
3529| ---------- | ------- | ---- | ---------------------------------- |
3530| userComment | string | 是   | 待修改的资产备注信息,备注信息最长为420字符。 |
3531
3532**错误码:**
3533
3534接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3535
3536| 错误码ID | 错误信息 |
3537| -------- | ---------------------------------------- |
3538| 202        |  Called by non-system application.         |
3539| 401       |  if parameter is invalid.         |
3540| 14000011       | System inner fail.         |
3541
3542**示例:**
3543
3544```ts
3545import dataSharePredicates from '@ohos.data.dataSharePredicates';
3546import { BusinessError } from '@ohos.base';
3547
3548async function example() {
3549  console.info('setUserCommentDemo');
3550  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3551  let fetchOption: photoAccessHelper.FetchOptions = {
3552    fetchColumns: [],
3553    predicates: predicates
3554  };
3555  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
3556  let asset = await fetchResult.getFirstObject();
3557  let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
3558  let userComment: string = 'test_set_user_comment';
3559  assetChangeRequest.setUserComment(userComment);
3560  phAccessHelper.applyChanges(assetChangeRequest).then(() => {
3561    console.info('apply setUserComment successfully');
3562  }).catch((err: BusinessError) => {
3563    console.error(`apply setUserComment failed with error: ${err.code}, ${err.message}`);
3564  });
3565}
3566```
3567
3568### setEditData<sup>11+</sup>
3569
3570setEditData(editData: MediaAssetEditData): void
3571
3572保存资产的编辑数据。
3573
3574**系统接口**:此接口为系统接口。
3575
3576**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3577
3578**参数:**
3579
3580| 参数名        | 类型      | 必填   | 说明                                 |
3581| ---------- | ------- | ---- | ---------------------------------- |
3582| editData | [MediaAssetEditData](#mediaasseteditdata11) | 是   | 待保存的资产编辑数据。 |
3583
3584**错误码:**
3585
3586接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3587
3588| 错误码ID | 错误信息 |
3589| -------- | ---------------------------------------- |
3590| 202        |  Called by non-system application.         |
3591| 401       |  if parameter is invalid.         |
3592| 14000011       | System inner fail.         |
3593
3594**示例:**
3595
3596```ts
3597import dataSharePredicates from '@ohos.data.dataSharePredicates';
3598import { BusinessError } from '@ohos.base';
3599
3600async function example() {
3601  console.info('setEditDataDemo');
3602  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3603  let fetchOption: photoAccessHelper.FetchOptions = {
3604    fetchColumns: [],
3605    predicates: predicates
3606  };
3607  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
3608  let asset = await fetchResult.getFirstObject();
3609  let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
3610
3611  let assetEditData: photoAccessHelper.MediaAssetEditData = new photoAccessHelper.MediaAssetEditData('system', '1.0');
3612  let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg';
3613  assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, fileUri);
3614  assetEditData.data = '123456';
3615  assetChangeRequest.setEditData(assetEditData);
3616  phAccessHelper.applyChanges(assetChangeRequest).then(() => {
3617    console.info('apply setEditData successfully');
3618  }).catch((err: BusinessError) => {
3619    console.error(`apply setEditData failed with error: ${err.code}, ${err.message}`);
3620  });
3621}
3622```
3623
3624### addResource<sup>11+</sup>
3625
3626addResource(type: ResourceType, proxy: PhotoProxy): void
3627
3628通过PhotoProxy数据添加资源。
3629
3630**注意**:对于同一个资产变更请求,不支持在成功添加资源后,重复调用该接口。
3631
3632**系统接口**:此接口为系统接口,仅提供给相机应用使用。
3633
3634**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3635
3636**参数:**
3637
3638| 参数名  | 类型                              | 必填 | 说明                   |
3639| ------- |---------------------------------| ---- |----------------------|
3640| type | [ResourceType](#resourcetype11) | 是   | 待添加资源的类型。            |
3641| proxy | [PhotoProxy](#photoproxy11)     | 是   | 待添加资源的PhotoProxy 数据。 |
3642
3643**错误码:**
3644
3645接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3646
3647| 错误码ID    | 错误信息                              |
3648|----------|-----------------------------------|
3649| 202      | Called by non-system application. |
3650| 401      | if parameter is invalid.          |
3651| 14000011 | System inner fail.                |
3652| 14000016 | Operation Not Support.            |
3653
3654**示例:**
3655
3656```ts
3657class PhotoProxyImpl implements photoAccessHelper.PhotoProxy {
3658  // 应用实现PhotoProxy
3659}
3660
3661async function example() {
3662  console.info('addResourceByPhotoProxyDemo');
3663  try {
3664    let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE;
3665    let extension: string = 'jpg';
3666    let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, photoType, extension);
3667    let photoProxy: PhotoProxyImpl = new PhotoProxyImpl();
3668    assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, photoProxy);
3669    await phAccessHelper.applyChanges(assetChangeRequest);
3670    console.info('addResourceByPhotoProxy successfully');
3671  } catch (err) {
3672    console.error(`addResourceByPhotoProxyDemo failed with error: ${err.code}, ${err.message}`);
3673  }
3674}
3675```
3676
3677### setLocation<sup>11+</sup>
3678
3679setLocation(longitude: number, latitude: number): void
3680
3681设置文件的经纬度信息。
3682
3683**系统接口**:此接口为系统接口
3684
3685**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3686
3687**参数:**
3688
3689| 参数名  | 类型          | 必填 | 说明    |
3690| ------- |-------------| ---- |-------|
3691| longitude | number      | 是   | 经度。 |
3692| latitude | number | 是   | 纬度。   |
3693
3694**错误码:**
3695
3696接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3697
3698| 错误码ID | 错误信息 |
3699| -------- | ---------------------------------------- |
3700| 202      | Called by non-system application. |
3701| 401      |  if parameter is invalid.   |
3702| 14000011 |  System inner fail.         |
3703
3704**示例:**
3705
3706```ts
3707import dataSharePredicates from '@ohos.data.dataSharePredicates';
3708import { BusinessError } from '@ohos.base';
3709
3710async function example() {
3711  console.info('setLocationDemo');
3712  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3713  let fetchOption: photoAccessHelper.FetchOptions = {
3714    fetchColumns: [],
3715    predicates: predicates
3716  };
3717  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
3718  let asset = await fetchResult.getFirstObject();
3719  let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
3720  assetChangeRequest.setLocation(120.52, 30.40);
3721  phAccessHelper.applyChanges(assetChangeRequest).then(() => {
3722    console.info('apply setLocation successfully');
3723  }).catch((err: BusinessError) => {
3724    console.error(`apply setLocation failed with error: ${err.code}, ${err.message}`);
3725  });
3726}
3727```
3728
3729## MediaAssetsChangeRequest<sup>11+</sup>
3730
3731批量资产变更请求。
3732
3733**系统接口**:此接口为系统接口。
3734
3735**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3736
3737### constructor<sup>11+</sup>
3738
3739constructor(assets: Array&lt;PhotoAsset&gt;)
3740
3741构造函数。
3742
3743**系统接口**:此接口为系统接口。
3744
3745**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3746
3747**参数:**
3748
3749| 参数名   | 类型                      | 必填 | 说明       |
3750| -------- | ------------------------- | ---- | ---------- |
3751| assets | Array&lt;[PhotoAsset](#photoasset)&gt; | 是   | 需要变更的资产数组。 |
3752
3753**错误码:**
3754
3755接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3756
3757| 错误码ID | 错误信息 |
3758| -------- | ---------------------------------------- |
3759| 202        |  Called by non-system application.   |
3760| 401      |  if parameter is invalid.         |
3761| 14000011       | System inner fail.          |
3762
3763**示例:**
3764
3765```ts
3766import dataSharePredicates from '@ohos.data.dataSharePredicates';
3767
3768async function example() {
3769  console.info('MediaAssetsChangeRequest constructorDemo');
3770  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3771  let fetchOption: photoAccessHelper.FetchOptions = {
3772    fetchColumns: [],
3773    predicates: predicates
3774  };
3775  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
3776  let photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects();
3777  let assetsChangeRequest: photoAccessHelper.MediaAssetsChangeRequest = new photoAccessHelper.MediaAssetsChangeRequest(photoAssetList);
3778}
3779```
3780
3781### setFavorite<sup>11+</sup>
3782
3783setFavorite(favoriteState: boolean): void
3784
3785将文件设置为收藏文件。
3786
3787**系统接口**:此接口为系统接口。
3788
3789**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3790
3791**参数:**
3792
3793| 参数名        | 类型      | 必填   | 说明                                 |
3794| ---------- | ------- | ---- | ---------------------------------- |
3795| favoriteState | 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       |  if parameter is invalid.         |
3805| 14000011       | System inner fail.         |
3806
3807**示例:**
3808
3809```ts
3810import dataSharePredicates from '@ohos.data.dataSharePredicates';
3811import { BusinessError } from '@ohos.base';
3812
3813async function example() {
3814  console.info('setFavoriteDemo');
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 photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects();
3822  let assetsChangeRequest: photoAccessHelper.MediaAssetsChangeRequest = new photoAccessHelper.MediaAssetsChangeRequest(photoAssetList);
3823  assetsChangeRequest.setFavorite(true);
3824  phAccessHelper.applyChanges(assetsChangeRequest).then(() => {
3825    console.info('apply setFavorite successfully');
3826  }).catch((err: BusinessError) => {
3827    console.error(`apply setFavorite failed with error: ${err.code}, ${err.message}`);
3828  });
3829}
3830```
3831
3832### setHidden<sup>11+</sup>
3833
3834setHidden(hiddenState: boolean): void
3835
3836将文件设置为隐藏文件。
3837
3838**系统接口**:此接口为系统接口。
3839
3840**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3841
3842**参数:**
3843
3844| 参数名        | 类型      | 必填   | 说明                                 |
3845| ---------- | ------- | ---- | ---------------------------------- |
3846| hiddenState | boolean  | 是    | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 |
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       |  if parameter is invalid.         |
3856| 14000011       | System inner fail.         |
3857
3858**示例:**
3859
3860```ts
3861import dataSharePredicates from '@ohos.data.dataSharePredicates';
3862import { BusinessError } from '@ohos.base';
3863
3864async function example() {
3865  console.info('setHiddenDemo');
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 photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects();
3873  let assetsChangeRequest: photoAccessHelper.MediaAssetsChangeRequest = new photoAccessHelper.MediaAssetsChangeRequest(photoAssetList);
3874  assetsChangeRequest.setHidden(true);
3875  phAccessHelper.applyChanges(assetsChangeRequest).then(() => {
3876    console.info('apply setHidden successfully');
3877  }).catch((err: BusinessError) => {
3878    console.error(`apply setHidden failed with error: ${err.code}, ${err.message}`);
3879  });
3880}
3881```
3882
3883### setUserComment<sup>11+</sup>
3884
3885setUserComment(userComment: string): void
3886
3887修改媒体资产的备注信息。
3888
3889**系统接口**:此接口为系统接口。
3890
3891**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3892
3893**参数:**
3894
3895| 参数名        | 类型      | 必填   | 说明                                 |
3896| ---------- | ------- | ---- | ---------------------------------- |
3897| userComment | string | 是   | 待修改的资产备注信息,备注信息最长为420字符。 |
3898
3899**错误码:**
3900
3901接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3902
3903| 错误码ID | 错误信息 |
3904| -------- | ---------------------------------------- |
3905| 202        |  Called by non-system application.         |
3906| 401       |  if parameter is invalid.         |
3907| 14000011       | System inner fail.         |
3908
3909**示例:**
3910
3911```ts
3912import dataSharePredicates from '@ohos.data.dataSharePredicates';
3913import { BusinessError } from '@ohos.base';
3914
3915async function example() {
3916  console.info('setUserCommentDemo');
3917  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
3918  let fetchOption: photoAccessHelper.FetchOptions = {
3919    fetchColumns: [],
3920    predicates: predicates
3921  };
3922  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
3923  let photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects();
3924  let assetsChangeRequest: photoAccessHelper.MediaAssetsChangeRequest = new photoAccessHelper.MediaAssetsChangeRequest(photoAssetList);
3925  assetsChangeRequest.setUserComment('test_set_user_comment');
3926  phAccessHelper.applyChanges(assetsChangeRequest).then(() => {
3927    console.info('apply setUserComment successfully');
3928  }).catch((err: BusinessError) => {
3929    console.error(`apply setUserComment failed with error: ${err.code}, ${err.message}`);
3930  });
3931}
3932```
3933
3934## MediaAlbumChangeRequest<sup>11+</sup>
3935
3936相册变更请求。
3937
3938**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3939
3940### createAlbumRequest<sup>11+</sup>
3941
3942static createAlbumRequest(context: Context, name: string): MediaAlbumChangeRequest
3943
3944创建相册变更请求。
3945
3946相册名的参数规格为:
3947- 相册名字符串长度为1~255。
3948- 不允许出现非法字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ]
3949- 英文字符大小写不敏感。
3950- 相册名不允许重名。
3951
3952**系统接口**:此接口为系统接口。
3953
3954**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
3955
3956**参数:**
3957
3958| 参数名  | 类型    | 必填 | 说明                       |
3959| ------- | ------- | ---- | -------------------------- |
3960| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是   | 传入Ability实例的Context。 |
3961| name | string | 是   | 待创建相册的名称。|
3962
3963**返回值:**
3964
3965| 类型                                    | 说明              |
3966| --------------------------------------- | ----------------- |
3967| [MediaAlbumChangeRequest](#mediaalbumchangerequest11) | 返回创建相册的变更请求。 |
3968
3969**错误码:**
3970
3971接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
3972
3973| 错误码ID | 错误信息 |
3974| -------- | ---------------------------------------- |
3975| 202   |  Called by non-system application.         |
3976| 401   | if parameter is invalid.         |
3977| 14000011   | System inner fail.        |
3978
3979**示例:**
3980
3981```ts
3982async function example() {
3983  console.info('createAlbumRequestDemo');
3984  try {
3985    let albumName: string = 'newAlbumName' + new Date().getTime();
3986    let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = photoAccessHelper.MediaAlbumChangeRequest.createAlbumRequest(context, albumName);
3987    await phAccessHelper.applyChanges(albumChangeRequest);
3988    console.info('apply createAlbumRequest successfully');
3989  } catch (err) {
3990    console.error(`createAlbumRequestDemo failed with error: ${err.code}, ${err.message}`);
3991  }
3992}
3993```
3994
3995### deleteAlbums<sup>11+</sup>
3996
3997static deleteAlbums(context: Context, albums: Array&lt;Album&gt;): Promise&lt;void&gt;
3998
3999删除相册,使用Promise方式返回结果。
4000
4001删除相册前需先确保相册存在,只能删除用户相册。
4002
4003**系统接口**:此接口为系统接口。
4004
4005**需要权限**:ohos.permission.WRITE_IMAGEVIDEO
4006
4007**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4008
4009**参数:**
4010
4011| 参数名  | 类型    | 必填 | 说明                       |
4012| ------- | ------- | ---- | -------------------------- |
4013| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是   | 传入Ability实例的Context。 |
4014| albums  |  Array&lt;[Album](#album)&gt;          | 是   | 待删除的相册数组。         |
4015
4016**返回值:**
4017
4018| 类型                                    | 说明              |
4019| --------------------------------------- | ----------------- |
4020| Promise&lt;void&gt;| Promise对象,返回void。 |
4021
4022**错误码:**
4023
4024接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4025
4026| 错误码ID | 错误信息 |
4027| -------- | ---------------------------------------- |
4028| 201      |  Permission denied.         |
4029| 202   |  Called by non-system application.  |
4030| 401      |  if parameter is invalid.   |
4031| 14000011 |  System inner fail.         |
4032
4033**示例:**
4034
4035```ts
4036import dataSharePredicates from '@ohos.data.dataSharePredicates';
4037
4038async function example() {
4039  console.info('deleteAlbumsDemo');
4040  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4041  let fetchOptions: photoAccessHelper.FetchOptions = {
4042    fetchColumns: [],
4043    predicates: predicates
4044  };
4045  try {
4046    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions);
4047    let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
4048    await photoAccessHelper.MediaAlbumChangeRequest.deleteAlbums(context, [album]);
4049    console.info('deleteAlbums successfully');
4050  } catch (err) {
4051    console.error(`deleteAlbumsDemo failed with error: ${err.code}, ${err.message}`);
4052  }
4053}
4054```
4055
4056### setCoverUri<sup>11+</sup>
4057
4058setCoverUri(coverUri: string): void
4059
4060设置相册封面。
4061
4062**系统接口**:此接口为系统接口。
4063
4064**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4065
4066**参数:**
4067
4068| 参数名        | 类型      | 必填   | 说明                                 |
4069| ---------- | ------- | ---- | ---------------------------------- |
4070| coverUri | string | 是   | 待设置为相册封面文件的uri。 |
4071
4072**错误码:**
4073
4074接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4075
4076| 错误码ID | 错误信息 |
4077| -------- | ---------------------------------------- |
4078| 202        |  Called by non-system application.         |
4079| 401       |  if parameter is invalid.         |
4080| 14000011       | System inner fail.         |
4081
4082**示例:**
4083
4084```ts
4085import dataSharePredicates from '@ohos.data.dataSharePredicates';
4086
4087async function example() {
4088  console.info('setCoverUriDemo');
4089  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4090  let fetchOptions: photoAccessHelper.FetchOptions = {
4091    fetchColumns: [],
4092    predicates: predicates
4093  };
4094  try {
4095    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
4096    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
4097    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions);
4098    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
4099
4100    let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
4101    albumChangeRequest.setCoverUri(asset.uri);
4102    await phAccessHelper.applyChanges(albumChangeRequest);
4103    console.info('setCoverUri successfully');
4104  } catch (err) {
4105    console.error(`setCoverUriDemo failed with error: ${err.code}, ${err.message}`);
4106  }
4107}
4108```
4109
4110### moveAssets<sup>11+</sup>
4111
4112moveAssets(assets: Array&lt;PhotoAsset&gt;, targetAlbum: Album): void
4113
4114从相册中移动资产到另一个目标相册。
4115
4116**系统接口**:此接口为系统接口。
4117
4118**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4119
4120**参数:**
4121
4122| 参数名        | 类型      | 必填   | 说明                                 |
4123| ---------- | ------- | ---- | ---------------------------------- |
4124| assets | Array&lt;[PhotoAsset](#photoasset)&gt; | 是   | 待从相册中移出的资产数组。 |
4125| targetAlbum | Album | 是   | 待移入资产的目标相册。 |
4126
4127**错误码:**
4128
4129接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4130
4131| 错误码ID | 错误信息 |
4132| -------- | ---------------------------------------- |
4133| 202      |  Called by non-system application.         |
4134| 401       |  if parameter is invalid.         |
4135| 14000011       | System inner fail.         |
4136| 14000016 |  Operation Not Support.     |
4137
4138**示例:**
4139
4140```ts
4141import dataSharePredicates from '@ohos.data.dataSharePredicates';
4142
4143async function example() {
4144  console.info('moveAssetsDemo');
4145  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4146  let fetchOptions: photoAccessHelper.FetchOptions = {
4147    fetchColumns: [],
4148    predicates: predicates
4149  };
4150  try {
4151    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
4152    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
4153    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions);
4154    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
4155
4156    if (albumFetchResult.isAfterLast()) {
4157      console.error('lack of album to be moved into');
4158      return;
4159    }
4160    let nextAlbum: photoAccessHelper.Album = await albumFetchResult.getNextObject();
4161    let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
4162    albumChangeRequest.moveAssets([asset], nextAlbum);
4163    await phAccessHelper.applyChanges(albumChangeRequest);
4164    console.info('moveAssets successfully');
4165  } catch (err) {
4166    console.error(`moveAssetsDemo failed with error: ${err.code}, ${err.message}`);
4167  }
4168}
4169```
4170
4171### recoverAssets<sup>11+</sup>
4172
4173recoverAssets(assets: Array&lt;PhotoAsset&gt;): void
4174
4175从回收站中恢复资产。
4176
4177**系统接口**:此接口为系统接口。
4178
4179**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4180
4181**参数:**
4182
4183| 参数名        | 类型      | 必填   | 说明                                 |
4184| ---------- | ------- | ---- | ---------------------------------- |
4185| assets | Array&lt;[PhotoAsset](#photoasset)&gt; | 是   | 待从回收站中恢复的资产数组。 |
4186
4187**错误码:**
4188
4189接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4190
4191| 错误码ID | 错误信息 |
4192| -------- | ---------------------------------------- |
4193| 202      |  Called by non-system application.         |
4194| 401       |  if parameter is invalid.         |
4195| 14000011       | System inner fail.         |
4196| 14000016 |  Operation Not Support.     |
4197
4198**示例:**
4199
4200```ts
4201import dataSharePredicates from '@ohos.data.dataSharePredicates';
4202
4203async function example() {
4204  console.info('recoverAssetsDemo');
4205  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4206  let fetchOptions: photoAccessHelper.FetchOptions = {
4207    fetchColumns: [],
4208    predicates: predicates
4209  };
4210  try {
4211    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH);
4212    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
4213    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions);
4214    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
4215
4216    let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
4217    albumChangeRequest.recoverAssets([asset]);
4218    await phAccessHelper.applyChanges(albumChangeRequest);
4219    console.info('recoverAssets successfully');
4220  } catch (err) {
4221    console.error(`recoverAssetsDemo failed with error: ${err.code}, ${err.message}`);
4222  }
4223}
4224```
4225
4226### deleteAssets<sup>11+</sup>
4227
4228deleteAssets(assets: Array&lt;PhotoAsset&gt;): void
4229
4230从回收站中彻底删除资产。
4231
4232**注意**:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。
4233
4234**系统接口**:此接口为系统接口。
4235
4236**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4237
4238**参数:**
4239
4240| 参数名        | 类型      | 必填   | 说明                                 |
4241| ---------- | ------- | ---- | ---------------------------------- |
4242| assets | Array&lt;[PhotoAsset](#photoasset)&gt; | 是   | 待从回收站中彻底删除的资产数组。 |
4243
4244**错误码:**
4245
4246接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4247
4248| 错误码ID | 错误信息 |
4249| -------- | ---------------------------------------- |
4250| 202      |  Called by non-system application.         |
4251| 401       |  if parameter is invalid.         |
4252| 14000011       | System inner fail.         |
4253| 14000016 |  Operation Not Support.     |
4254
4255**示例:**
4256
4257```ts
4258import dataSharePredicates from '@ohos.data.dataSharePredicates';
4259
4260async function example() {
4261  console.info('deleteAssetsPermanentlyDemo');
4262  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4263  let fetchOptions: photoAccessHelper.FetchOptions = {
4264    fetchColumns: [],
4265    predicates: predicates
4266  };
4267  try {
4268    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH);
4269    let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
4270    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions);
4271    let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
4272
4273    let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
4274    albumChangeRequest.deleteAssets([asset]);
4275    await phAccessHelper.applyChanges(albumChangeRequest);
4276    console.info('succeed to deleteAssets permanently');
4277  } catch (err) {
4278    console.error(`deleteAssetsPermanentlyDemo failed with error: ${err.code}, ${err.message}`);
4279  }
4280}
4281```
4282
4283### setDisplayLevel<sup>11+</sup>
4284
4285setDisplayLevel(displayLevel: number): void
4286
4287设置人像相册的显示级别。
4288
4289**系统接口**:此接口为系统接口。
4290
4291**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4292
4293**参数:**
4294
4295| 参数名        | 类型      | 必填   | 说明                                 |
4296| ---------- | ------- | ---- | ---------------------------------- |
4297| displayLevel | number | 是    | 设置人像相册的显示级别, 0:取消该人像相册收藏;1:设置人像相册为首届面;2:设置人像相册为更多界面;3:设置人像相册为收藏界面。 |
4298
4299**错误码:**
4300
4301接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4302
4303| 错误码ID | 错误信息 |
4304| -------- | ---------------------------------------- |
4305| 202        |  Called by non-system application.         |
4306| 401       |  if parameter is invalid.         |
4307| 14000011       | System inner fail.         |
4308
4309**示例:**
4310
4311``` ts
4312import dataSharePredicates from '@ohos.data.dataSharePredicates';
4313
4314async function example() {
4315  try {
4316    console.info('setDisplayLevel Example')
4317    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4318    predicates.equalTo('user_display_level', 2);
4319    let fetchOptions: photoAccessHelper.FetchOptions = {
4320      fetchColumns: [],
4321      predicates: predicates
4322    };
4323    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.PORTRAIT, fetchOptions);
4324    let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
4325    let changeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
4326    changeRequest.setDisplayLevel(1);
4327    await phAccessHelper.applyChanges(changeRequest);
4328  } catch (err) {
4329    console.error(`setDisplayLevel failed with error: ${err.code}, ${err.message}`);
4330  }
4331}
4332```
4333
4334### setIsMe<sup>11+</sup>
4335
4336setIsMe(): void
4337
4338将人像相册的人物关系设置为“我”。
4339
4340**系统接口**:此接口为系统接口。
4341
4342**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4343
4344**错误码:**
4345
4346接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4347
4348| 错误码ID | 错误信息 |
4349| -------- | ---------------------------------------- |
4350| 202        |  Called by non-system application.         |
4351| 401       |  if parameter is invalid.         |
4352| 14000011       | System inner fail.         |
4353
4354**示例:**
4355
4356``` ts
4357import dataSharePredicates from '@ohos.data.dataSharePredicates';
4358
4359async function example() {
4360  try {
4361    console.info('setIsMe Example')
4362    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4363    predicates.equalTo('user_display_level', 2);
4364    let fetchOptions: photoAccessHelper.FetchOptions = {
4365      fetchColumns: [],
4366      predicates: predicates
4367    };
4368    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.PORTRAIT, fetchOptions);
4369    let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
4370    let changeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
4371    changeRequest.setIsMe();
4372    await phAccessHelper.applyChanges(changeRequest);
4373  } catch (err) {
4374    console.error(`setIsMe failed with error: ${err.code}, ${err.message}`);
4375  }
4376}
4377```
4378
4379### dismissAssets<sup>11+</sup>
4380
4381dismissAssets(assets: Array&lt;PhotoAsset&gt;): void
4382
4383从该人像相册中移除指定图片。
4384
4385**系统接口**:此接口为系统接口。
4386
4387**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4388
4389**参数:**
4390
4391| 参数名        | 类型      | 必填   | 说明                                 |
4392| ---------- | ------- | ---- | ---------------------------------- |
4393| assets | Array&lt;PhotoAsset&gt; | 是    | 需要移除的文件列表 。 |
4394
4395**错误码:**
4396
4397接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4398
4399| 错误码ID | 错误信息 |
4400| -------- | ---------------------------------------- |
4401| 202        |  Called by non-system application.         |
4402| 401       |  if parameter is invalid.         |
4403| 14000011       | System inner fail.         |
4404| 14000016       | Operation Not support.         |
4405
4406**示例:**
4407
4408``` ts
4409import dataSharePredicates from '@ohos.data.dataSharePredicates';
4410
4411async function example() {
4412  try {
4413    console.info('dismissAssets Example')
4414    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4415    predicates.equalTo('user_display_level', 2);
4416    let fetchOptions: photoAccessHelper.FetchOptions = {
4417      fetchColumns: [],
4418      predicates: predicates
4419    };
4420    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.PORTRAIT, fetchOptions);
4421    let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
4422
4423    let predicatesAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4424    let assetFetchOptions: photoAccessHelper.FetchOptions = {
4425      fetchColumns: [],
4426      predicates: predicatesAsset
4427    };
4428    let assetFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(assetFetchOptions);
4429    let asset: photoAccessHelper.PhotoAsset = await assetFetchResult.getFirstObject();
4430
4431    let changeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
4432    changeRequest.dismissAssets([asset]);
4433    await phAccessHelper.applyChanges(changeRequest);
4434  } catch (err) {
4435    console.error(`dismissAssets failed with error: ${err.code}, ${err.message}`);
4436  }
4437}
4438```
4439
4440### mergeAlbum<sup>11+</sup>
4441
4442mergeAlbum(target: Album): void
4443
4444将两个人像相册合并。
4445
4446**系统接口**:此接口为系统接口。
4447
4448**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4449
4450**参数:**
4451
4452| 参数名        | 类型      | 必填   | 说明                                 |
4453| ---------- | ------- | ---- | ---------------------------------- |
4454| target | [Album](#album) | 是    | 需要合并的目标相册,合并相册必须重命名。 |
4455
4456**错误码:**
4457
4458接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4459
4460| 错误码ID | 错误信息 |
4461| -------- | ---------------------------------------- |
4462| 202        |  Called by non-system application.         |
4463| 401       |  if parameter is invalid.         |
4464| 14000011       | System inner fail.         |
4465| 14000016       | Operation Not support.         |
4466
4467**示例:**
4468
4469``` ts
4470import dataSharePredicates from '@ohos.data.dataSharePredicates';
4471
4472async function example() {
4473  try {
4474    console.info('mergeAlbum Example')
4475    let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
4476    predicates.equalTo('user_display_level', 2);
4477    let fetchOptions: photoAccessHelper.FetchOptions = {
4478      fetchColumns: [],
4479      predicates: predicates
4480    };
4481    let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.PORTRAIT, fetchOptions);
4482    let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
4483    if (fetchResult.isAfterLast()) {
4484      console.error('lack of album to merge');
4485      return;
4486    }
4487    let target: photoAccessHelper.Album = await fetchResult.getNextObject();
4488
4489    let changeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
4490    changeRequest.mergeAlbum(target);
4491    changeRequest.setAlbumName("testName");
4492    await phAccessHelper.applyChanges(changeRequest);
4493  } catch (err) {
4494    console.error(`mergeAlbum failed with error: ${err.code}, ${err.message}`);
4495  }
4496}
4497```
4498
4499### placeBefore<sup>11+</sup>
4500
4501placeBefore(album: Album): void;
4502
4503将当前相册排序到目标相册之前。
4504
4505**系统接口**:此接口为系统接口。
4506
4507**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4508
4509**参数:**
4510
4511| 参数名        | 类型      | 必填   | 说明                                 |
4512| ---------- | ------- | ---- | ---------------------------------- |
4513| album | [Album](#album) | 是   |  目标相册。如果要将当前相册排序到末位,则目标相册传入null。 |
4514
4515**错误码:**
4516
4517接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
4518
4519| 错误码ID | 错误信息 |
4520| -------- | ---------------------------------------- |
4521| 202      |  Called by non-system application.         |
4522| 401       |  if parameter is invalid.         |
4523| 14000011       | System inner fail.         |
4524
4525**示例:**
4526
4527```ts
4528async function example() {
4529  console.info('placeBeforeDemo');
4530  try {
4531    let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
4532    let firstAlbum: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
4533    if (albumFetchResult.isAfterLast()) {
4534      console.error('lack of album to place before');
4535      return;
4536    }
4537    let secondAlbum: photoAccessHelper.Album = await albumFetchResult.getNextObject();
4538    let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(secondAlbum);
4539    albumChangeRequest.placeBefore(firstAlbum);
4540    await phAccessHelper.applyChanges(albumChangeRequest);
4541    console.info('placeBefore successfully');
4542  } catch (err) {
4543    console.error(`placeBeforeDemo failed with error: ${err.code}, ${err.message}`);
4544  }
4545}
4546```
4547
4548## PhotoSubtype
4549
4550枚举,不同[PhotoAsset](#photoasset)的类型。
4551
4552**系统接口**:此接口为系统接口。
4553
4554**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4555
4556| 名称  |  值 |  说明 |
4557| ----- |  ---- |  ---- |
4558| DEFAULT |  0 |  默认照片类型。 |
4559| SCREENSHOT |  1 |  截屏录屏文件类型。 |
4560
4561## PositionType
4562
4563枚举,文件位置,表示文件在本地或云端。
4564
4565**系统接口**:此接口为系统接口。
4566
4567**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4568
4569| 名称  |  值 |  说明 |
4570| ----- |  ---- |  ---- |
4571| LOCAL |  1 << 0 |  文件只存在于本端设备。 |
4572| CLOUD |  1 << 1 |  文件只存在于云端。 |
4573
4574## AlbumType
4575
4576枚举,相册类型,表示是用户相册还是系统预置相册。
4577
4578**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4579
4580| 名称                  | 值    | 说明                        |
4581| ------------------- | ---- | ------------------------- |
4582| SMART<sup>11+</sup> | 4096 | 智慧分析相册。**系统接口**:此接口为系统接口。 |
4583
4584## AlbumSubtype
4585
4586枚举,相册子类型,表示具体的相册类型。
4587
4588**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4589
4590| 名称                                | 值          | 说明                              |
4591| --------------------------------- | ---------- | ------------------------------- |
4592| HIDDEN                            | 1027       | 隐藏相册。**系统接口**:此接口为系统接口。         |
4593| TRASH                             | 1028       | 回收站。**系统接口**:此接口为系统接口。          |
4594| SCREENSHOT                        | 1029       | 截屏和录屏相册。**系统接口**:此接口为系统接口。      |
4595| CAMERA                            | 1030       | 相机拍摄的照片和视频相册。**系统接口**:此接口为系统接口。 |
4596| IMAGE<sup>11+</sup>               | 1031       | 所有图片相册。**系统接口**:此接口为系统接口。       |
4597| SOURCE\_GENERIC<sup>11+</sup>     | 2049       | 来源相册。**系统接口**:此接口为系统接口。         |
4598| CLASSIFY<sup>11+</sup>            | 4097       | 分类相册。**系统接口**:此接口为系统接口。         |
4599| GEOGRAPHY\_LOCATION<sup>11+</sup> | 4099       | 地图相册。**系统接口**:此接口为系统接口。         |
4600| GEOGRAPHY\_CITY<sup>11+</sup>     | 4100       | 城市相册。**系统接口**:此接口为系统接口。         |
4601| SHOOTING\_MODE<sup>11+</sup>      | 4101       | 拍摄模式相册。**系统接口**:此接口为系统接口。       |
4602| PORTRAIT<sup>11+</sup>            | 4102       | 人像相册。**系统接口**:此接口为系统接口。         |
4603
4604## RequestPhotoType<sup>11+</sup>
4605
4606枚举,获取图片或视频缩略图的操作类型。
4607
4608**系统接口**:此接口为系统接口。
4609
4610**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4611
4612| 名称  |  值 |  说明 |
4613| ----- |  ---- |  ---- |
4614| REQUEST_ALL_THUMBNAILS  |  0 |  即获取快速缩略图,又获取质量缩略图。 |
4615| REQUEST_FAST_THUMBNAIL |  1 |  只获取快速缩略图。 |
4616| REQUEST_QUALITY_THUMBNAIL |  2 |  只获取质量缩略图。 |
4617
4618## PhotoKeys
4619
4620枚举,图片和视频文件关键信息。
4621
4622**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4623
4624| 名称          | 值              | 说明                                                       |
4625| ------------- | ------------------- | ---------------------------------------------------------- |
4626| POSITION  | 'position'            | 文件位置类型。**系统接口**:此接口为系统接口。                               |
4627| DATE_TRASHED  | 'date_trashed'  | 删除日期(删除文件时间距1970年1月1日的秒数值)。**系统接口**:此接口为系统接口。                 |
4628| HIDDEN  | 'hidden'            | 文件的隐藏状态。**系统接口**:此接口为系统接口。                               |
4629| CAMERA_SHOT_KEY  | 'camera_shot_key'  | 锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。**系统接口**:此接口为系统接口。            |
4630| USER_COMMENT<sup>10+</sup>  | 'user_comment'            | 用户注释信息。**系统接口**:此接口为系统接口。           |
4631| DATE_YEAR<sup>11+</sup>  | 'date_year'            | 创建文件的年份。**系统接口**:此接口为系统接口。           |
4632| DATE_MONTH<sup>11+</sup>  | 'date_month'            | 创建文件的月份。**系统接口**:此接口为系统接口。           |
4633| DATE_DAY<sup>11+</sup>  | 'date_day'            | 创建文件的日期。**系统接口**:此接口为系统接口。           |
4634| PENDING<sup>11+</sup>  | 'pending'            | pending状态。**系统接口**:此接口为系统接口。           |
4635
4636## HiddenPhotosDisplayMode<sup>11+</sup>
4637
4638枚举,系统中隐藏文件显示模式。
4639
4640**系统接口**:此接口为系统接口。
4641
4642**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4643
4644| 名称          | 值              | 说明                                                       |
4645| ------------- | ------------------- | ---------------------------------------------------------- |
4646| ASSETS_MODE   | 0       | 按系统预置的隐藏相册显示隐藏文件,即显示系统中所有的隐藏文件。    |
4647| ALBUMS_MODE    | 1    | 按相册显示隐藏文件(即显示系统中所有包含隐藏文件的相册,除系统预置的隐藏相册本身和回收站相册以外)。  |
4648
4649## PhotoCreateOptions
4650
4651图片或视频的创建选项。
4652
4653**系统接口**:此接口为系统接口。
4654
4655**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4656
4657| 名称                   | 类型                | 必填 | 说明                                              |
4658| ---------------------- | ------------------- | ---- | ------------------------------------------------ |
4659| subtype           | [PhotoSubtype](#photosubtype) | 否  | 图片或者视频的子类型。  |
4660| cameraShotKey           | string | 否  | 锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。   |
4661
4662## RequestPhotoOptions<sup>11+</sup>
4663
4664获取图片或视频缩略图的选项。
4665
4666**系统接口**:此接口为系统接口。
4667
4668**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4669
4670| 名称                   | 类型                | 必填 | 说明                                              |
4671| ---------------------- | ------------------- | ---- | ------------------------------------------------ |
4672| size           | [image.Size](../apis-image-kit/js-apis-image.md#size) | 否  | 获取缩略图的尺寸。  |
4673| requestPhotoType    | [RequestPhotoType](#requestphototype11) | 否  | 获取的操作类型。  |
4674
4675## RequestOptions<sup>11+</sup>
4676
4677请求策略。
4678
4679**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4680
4681| 名称                   | 类型                              | 可读 | 可写 | 说明                                              |
4682| ---------------------- |---------------------------------| ---- |---- | ------------------------------------------------ |
4683| sourceMode           | [SourceMode](#sourcemode11)     | 是   | 是   | 资源文件的读取类型,可以指定当前请求获取的是源文件,或是编辑后的文件。**系统接口**:此接口为系统接口。 |
4684
4685## PhotoProxy<sup>11+</sup>
4686
4687照片代理,相机应用通过该对象写入图片数据。
4688
4689**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4690
4691## MediaChangeRequest<sup>11+</sup>
4692
4693媒体变更请求,资产变更请求和相册变更请求的父类型。
4694
4695**注意**:媒体变更请求需要在调用[applyChanges](js-apis-photoAccessHelper.md#applychanges11)后才会提交生效。
4696
4697**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4698
4699## FormInfo<sup>11+</sup>
4700
4701图库卡片相关信息。
4702
4703**系统接口**:此接口为系统接口。
4704
4705**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4706
4707| 名称                   | 类型                | 必填 | 说明                                              |
4708| ---------------------- | ------------------- | ---- | ------------------------------------------------ |
4709|formId       |string  |是 | 卡片的ID,由图库创建卡片时提供。 |
4710|uri          |string  |是 | 卡片绑定的图片的uri。创建卡片时uri可为空或图片的uri,移除卡片时uri不做校验,传空即可。  |
4711
4712## ResourceType<sup>11+</sup>
4713
4714枚举,写入资源的类型。
4715
4716**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4717
4718| 名称  |  值 |  说明 |
4719| ----- |  ---- |  ---- |
4720| PHOTO_PROXY |  3 |  表示照片代理资源。**系统接口**:此接口为系统接口。 |
4721
4722## DefaultChangeUri
4723
4724枚举,DefaultChangeUri子类型。
4725
4726**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4727
4728| 名称              | 值                      | 说明                                                         |
4729| ----------------- | ----------------------- | ------------------------------------------------------------ |
4730| DEFAULT_HIDDEN_ALBUM_URI<sup>11+</sup>  | 'file://media/HiddenAlbum' | 隐藏相册-相册视图中相册的Uri,即系统中包含隐藏文件的相册(不包含系统预置隐藏相册和回收站相册)的Uri,仅用于隐藏相册-相册视图场景的通知。**系统接口**:此接口为系统接口。 |
4731
4732## SourceMode<sup>11+</sup>
4733
4734枚举,资源文件的读取类型。
4735
4736**系统接口**:此接口为系统接口。
4737
4738**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4739
4740| 名称  |  值 |  说明 |
4741| ----- |  ---- |  ---- |
4742| ORIGINAL_MODE |  0 |  读取源文件。 |
4743| EDITED_MODE |  1 |  读取编辑后的文件。|
4744
4745## AnalysisType<sup>11+</sup>
4746
4747枚举,智慧分析类型。
4748
4749**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
4750
4751| 名称                            | 值  | 说明       |
4752| :---------------------------- | :- | :------- |
4753| ANALYSIS\_AESTHETICS\_SCORE   | 0  | 美学评分分析类别。**系统接口**:此接口为系统接口。    |
4754| ANALYSIS\_LABEL               | 1  | 分类标签分析类别。**系统接口**:此接口为系统接口。    |
4755| ANALYSIS\_OCR                 | 2  | 文字识别分析类别。**系统接口**:此接口为系统接口。    |
4756| ANALYSIS\_FACE                | 3  | 人脸检测分析类别。**系统接口**:此接口为系统接口。    |
4757| ANALYSIS\_OBJECT              | 4  | 目标检测分析类别。**系统接口**:此接口为系统接口。    |
4758| ANALYSIS\_RECOMMENDATION      | 5  | 推荐构图分析类别。**系统接口**:此接口为系统接口。    |
4759| ANALYSIS\_SEGMENTATION        | 6  | 抠图分析类别。**系统接口**:此接口为系统接口。    |
4760| ANALYSIS\_COMPOSITION         | 7  | 美学构图分析类别。**系统接口**:此接口为系统接口。   |
4761| ANALYSIS\_SALIENCY            | 8  | 最佳呈现主体中心分析类别。**系统接口**:此接口为系统接口。   |
4762| ANALYSIS\_DETAIL\_ADDRESS     | 9  | 详细地址分析类别。**系统接口**:此接口为系统接口。    |