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