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