• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.file.picker (选择器)
2
3> **说明:**
4>
5> 该模块接口从API version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
6
7选择器(Picker)是一个封装PhotoViewPicker、DocumentViewPicker、AudioViewPicker等API模块,具有选择与保存的能力。应用可以自行选择使用哪种API实现文件选择和文件保存的功能。该类接口,需要应用在界面UIAbility中调用,否则无法拉起photoPicker应用或FilePicker应用。
8
9## 导入模块
10
11```ts
12import  { picker } from '@kit.CoreFileKit';
13```
14
15## DocumentViewPicker
16
17文件选择器对象,用来支撑选择和保存各种格式文档。在使用前,需要先创建DocumentViewPicker实例。
18
19**系统能力**:SystemCapability.FileManagement.UserFileService
20
21### constructor<sup>12+</sup>
22
23constructor(context: Context)
24
25创建DocumentViewPicker对象,推荐使用该构造函数,获取context参考[getContext](../apis-arkui/js-apis-getContext.md)。
26
27**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
28
29**系统能力**:SystemCapability.FileManagement.UserFileService
30
31**参数:**
32| 参数名  | 类型    | 必填 | 说明                                                         |
33| ------- | ------- | ---- | ------------------------------------------------------------ |
34| context | Context| 是   | 应用上下文(仅支持UIAbilityContext)。Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
35
36**示例:**
37
38```ts
39import { common } from '@kit.AbilityKit';
40import  { picker } from '@kit.CoreFileKit';
41@Entry
42@Component
43struct Index {
44  @State message: string = 'hello World';
45
46  build() {
47    Row() {
48      Column() {
49        Text(this.message)
50          .fontSize(50)
51          .fontWeight(FontWeight.Bold)
52          .onClick(()=>{
53            let context = getContext(this) as common.Context; // 请确保getContext(this)返回结果为UIAbilityContext
54            let documentPicker = new picker.DocumentViewPicker(context);
55          })
56      }
57      .width('100%')
58    }
59    .height('100%')
60  }
61}
62```
63
64### constructor<sup>12+</sup>
65
66constructor()
67
68创建DocumentViewPicker对象,不推荐使用该构造函数,会出现概率性失败问题。
69
70**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
71
72**系统能力**:SystemCapability.FileManagement.UserFileService
73
74**示例:**
75
76```ts
77let documentPicker = new picker.DocumentViewPicker(); // 不推荐使用无参构造,会出现概率性拉起失败问题
78```
79
80### constructor<sup>13+</sup>
81
82constructor(context: Context, window: window.Window)
83
84应用自行创建窗口中,可用通过该构造函数创建DocumentViewPicker对象。一般场景推荐使用constructor(context: Context)方法创建DocumentViewPicker对象。
85
86**参数:**
87| 参数名  | 类型    | 必填 | 说明                                                         |
88| ------- | ------- | ---- | ------------------------------------------------------------ |
89| context | Context| 是   | 应用上下文(仅支持UIAbilityContext)。Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
90| window  | [window.Window](../apis-arkui/js-apis-window.md#window)  | 是   | 应用创建的窗口实例。 |
91
92> **说明:**
93>
94> 当前仅支持手机。
95
96**系统能力**:SystemCapability.FileManagement.UserFileService
97
98**示例:**
99
100```ts
101import { common } from '@kit.AbilityKit';
102import { picker } from '@kit.CoreFileKit';
103import { window } from '@kit.ArkUI';
104@Entry
105@Component
106struct Index {
107  @State message: string = 'hello World';
108
109  build() {
110    Row() {
111      Column() {
112        Text(this.message)
113          .fontSize(50)
114          .fontWeight(FontWeight.Bold)
115          .onClick(()=>{
116            let context = getContext(this) as common.Context; // 请确保getContext(this)返回结果为UIAbilityContext
117            let windowClass: window.Window | undefined = undefined;
118            windowClass = window.findWindow('test'); // 请确保window已创建,此处的'test'为window创建时的name参数
119            let documentPicker = new picker.DocumentViewPicker(context, windowClass);
120          })
121      }
122      .width('100%')
123    }
124    .height('100%')
125  }
126}
127```
128
129### select
130
131select(option?: DocumentSelectOptions): Promise&lt;Array&lt;string&gt;&gt;
132
133通过选择模式拉起documentPicker界面,用户可以选择一个或多个文件。接口采用Promise异步返回形式,传入可选参数DocumentSelectOptions对象,返回选择文件的uri数组。
134
135**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
136
137**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
138
139**系统能力**:SystemCapability.FileManagement.UserFileService
140
141**参数:**
142
143| 参数名  | 类型    | 必填 | 说明                       |
144| ------- | ------- | ---- | -------------------------- |
145| option | [DocumentSelectOptions](#documentselectoptions) | 否   | documentPicker选择选项。若无此参数,则默认拉起documentPicker主界面。 |
146
147**返回值:**
148
149| 类型                            | 说明    |
150| ----------------------------- | :---- |
151| Promise&lt;Array&lt;string&gt;&gt; | Promise对象。返回documentPicker选择后的结果集。 |
152
153**示例:**
154
155```ts
156import { BusinessError } from '@kit.BasicServicesKit';
157import { common } from '@kit.AbilityKit';
158import  { picker } from '@kit.CoreFileKit';
159async function example07(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
160  try {
161    let documentSelectOptions = new picker.DocumentSelectOptions();
162    let documentPicker = new picker.DocumentViewPicker(context);
163    documentPicker.select(documentSelectOptions).then((documentSelectResult: Array<string>) => {
164      console.info('DocumentViewPicker.select successfully, documentSelectResult uri: ' + JSON.stringify(documentSelectResult));
165    }).catch((err: BusinessError) => {
166      console.error('DocumentViewPicker.select failed with err: ' + JSON.stringify(err));
167    });
168  } catch (error) {
169    let err: BusinessError = error as BusinessError;
170    console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err));
171  }
172}
173```
174
175### select
176
177select(option: DocumentSelectOptions, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
178
179通过选择模式拉起documentPicker界面,用户可以选择一个或多个文件。接口采用callback异步返回形式,传入参数DocumentSelectOptions对象,返回选择文件的uri数组。
180
181**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
182
183**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
184
185**系统能力**:SystemCapability.FileManagement.UserFileService
186
187**参数:**
188
189| 参数名  | 类型    | 必填 | 说明                       |
190| ------- | ------- | ---- | -------------------------- |
191| option | [DocumentSelectOptions](#documentselectoptions) | 是   | documentPicker选择选项。 |
192| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回documentPicker选择后的结果集。 |
193
194**示例:**
195
196```ts
197import { BusinessError } from '@kit.BasicServicesKit';
198import { common } from '@kit.AbilityKit';
199import  { picker } from '@kit.CoreFileKit';
200async function example08(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
201  try {
202    let documentSelectOptions = new picker.DocumentSelectOptions();
203    let documentPicker = new picker.DocumentViewPicker(context);
204    documentPicker.select(documentSelectOptions, (err: BusinessError, documentSelectResult: Array<string>) => {
205      if (err) {
206        console.error('DocumentViewPicker.select failed with err: ' + JSON.stringify(err));
207        return;
208      }
209      console.info('DocumentViewPicker.select successfully, documentSelectResult uri: ' + JSON.stringify(documentSelectResult));
210    });
211  } catch (error) {
212    let err: BusinessError = error as BusinessError;
213    console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err));
214  }
215}
216```
217
218### select
219
220select(callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
221
222通过选择模式拉起documentPicker界面,用户可以选择一个或多个文件。接口采用callback异步返回形式,返回选择文件的uri数组。
223
224**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
225
226**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
227
228**系统能力**:SystemCapability.FileManagement.UserFileService
229
230**参数:**
231
232| 参数名  | 类型    | 必填 | 说明                       |
233| ------- | ------- | ---- | -------------------------- |
234| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回documentPicker选择后的结果集。 |
235
236**示例:**
237
238```ts
239import { BusinessError } from '@kit.BasicServicesKit';
240import { common } from '@kit.AbilityKit';
241import  { picker } from '@kit.CoreFileKit';
242async function example09(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
243  try {
244    let documentPicker = new picker.DocumentViewPicker(context);
245    documentPicker.select((err: BusinessError, documentSelectResult: Array<string>) => {
246      if (err) {
247        console.error('DocumentViewPicker.select failed with err: ' + JSON.stringify(err));
248        return;
249      }
250      console.info('DocumentViewPicker.select successfully, documentSelectResult uri: ' + JSON.stringify(documentSelectResult));
251    });
252  } catch (error) {
253    let err: BusinessError = error as BusinessError;
254    console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err));
255  }
256}
257```
258
259### save
260
261save(option?: DocumentSaveOptions): Promise&lt;Array&lt;string&gt;&gt;
262
263通过保存模式拉起documentPicker界面,用户可以保存一个或多个文件。接口采用Promise异步返回形式,传入可选参数DocumentSaveOptions对象,返回保存文件的uri数组。
264
265**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
266
267**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
268
269**系统能力**:SystemCapability.FileManagement.UserFileService
270
271**参数:**
272
273| 参数名  | 类型    | 必填 | 说明                       |
274| ------- | ------- | ---- | -------------------------- |
275| option | [DocumentSaveOptions](#documentsaveoptions) | 否   | documentPicker保存选项。若无此参数,则拉起documentPicker界面后需用户自行输入保存的文件名。 |
276
277**返回值:**
278
279| 类型                            | 说明    |
280| ----------------------------- | :---- |
281| Promise&lt;Array&lt;string&gt;&gt; | Promise对象。返回documentPicker保存后的结果集。 |
282
283**示例:**
284
285```ts
286import { BusinessError } from '@kit.BasicServicesKit';
287import { common } from '@kit.AbilityKit';
288import  { picker } from '@kit.CoreFileKit';
289async function example10(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
290  try {
291    let documentSaveOptions = new picker.DocumentSaveOptions();
292    documentSaveOptions.newFileNames = ['DocumentViewPicker01.txt'];
293    let documentPicker = new picker.DocumentViewPicker(context);
294    documentPicker.save(documentSaveOptions).then((documentSaveResult: Array<string>) => {
295      console.info('DocumentViewPicker.save successfully, documentSaveResult uri: ' + JSON.stringify(documentSaveResult));
296    }).catch((err: BusinessError) => {
297      console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err));
298    });
299  } catch (error) {
300    let err: BusinessError = error as BusinessError;
301    console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err));
302  }
303}
304```
305
306### save
307
308save(option: DocumentSaveOptions, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
309
310通过保存模式拉起documentPicker界面,用户可以保存一个或多个文件。接口采用callback异步返回形式,传入参数DocumentSaveOptions对象,返回保存文件的uri数组。
311
312**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
313
314**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
315
316**系统能力**:SystemCapability.FileManagement.UserFileService
317
318**参数:**
319
320| 参数名  | 类型    | 必填 | 说明                       |
321| ------- | ------- | ---- | -------------------------- |
322| option | [DocumentSaveOptions](#documentsaveoptions) | 是   | documentPicker保存选项。 |
323| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回documentPicker保存后的结果集。 |
324
325**示例:**
326
327```ts
328import { BusinessError } from '@kit.BasicServicesKit';
329import { common } from '@kit.AbilityKit';
330import  { picker } from '@kit.CoreFileKit';
331async function example11(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
332  try {
333    let documentSaveOptions = new picker.DocumentSaveOptions();
334    documentSaveOptions.newFileNames = ['DocumentViewPicker02.txt'];
335    let documentPicker = new picker.DocumentViewPicker(context);
336    documentPicker.save(documentSaveOptions, (err: BusinessError, documentSaveResult: Array<string>) => {
337      if (err) {
338        console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err));
339        return;
340      }
341      console.info('DocumentViewPicker.save successfully, documentSaveResult uri: ' + JSON.stringify(documentSaveResult));
342    });
343  } catch (error) {
344    let err: BusinessError = error as BusinessError;
345    console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err));
346  }
347}
348```
349
350### save
351
352save(callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
353
354通过保存模式拉起documentPicker界面,用户可以保存一个或多个文件。接口采用callback异步返回形式,返回保存文件的uri数组。
355
356**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
357
358**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
359
360**系统能力**:SystemCapability.FileManagement.UserFileService
361
362**参数:**
363
364| 参数名  | 类型    | 必填 | 说明                       |
365| ------- | ------- | ---- | -------------------------- |
366| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回documentPicker保存后的结果集。 |
367
368**示例:**
369
370```ts
371import { BusinessError } from '@kit.BasicServicesKit';
372import { common } from '@kit.AbilityKit';
373import  { picker } from '@kit.CoreFileKit';
374async function example12(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
375  try {
376    let documentPicker = new picker.DocumentViewPicker(context);
377    documentPicker.save((err: BusinessError, documentSaveResult: Array<string>) => {
378      if (err) {
379        console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err));
380        return;
381      }
382      console.info('DocumentViewPicker.save successfully, documentSaveResult uri: ' + JSON.stringify(documentSaveResult));
383    });
384  } catch (error) {
385    let err: BusinessError = error as BusinessError;
386    console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err));
387  }
388}
389```
390
391### getSelectedIndex<sup>14+</sup>;
392
393getSelectedIndex(): number
394
395获取保存成功后的文件后缀类型的下标。
396
397仅支持2in1设备。
398
399该方法只在调用 [save()](#save)时使用生效,其他场景下不可以使用。
400
401该方法需要配置参数[DocumentSaveOptions.fileSuffixChoices](#documentsaveoptions)使用。
402
403该方法返回的是所选后缀类型的下标(number)。所选的后缀类型是开发者所传的参数[DocumentSaveOptions.fileSuffixChoices](#documentsaveoptions)里的某个后缀类型。如果没有传参,并且调用了getSelectedIndex()方法,返回值为-1。
404
405**原子化服务API**:从API version 14开始,该接口支持在原子化服务中使用。
406
407**系统能力**:SystemCapability.FileManagement.UserFileService.FolderSelection
408
409```ts
410import { BusinessError } from '@kit.BasicServicesKit';
411import { common } from '@kit.AbilityKit';
412import  { picker } from '@kit.CoreFileKit';
413async function exampleIndex(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
414  try {
415    let documentSaveOptions = new picker.DocumentSaveOptions();
416    //保存文件的名字
417    documentSaveOptions.newFileNames = ['DocumentViewPicker01'];
418    //保存文件的后缀类型
419    documentSaveOptions.fileSuffixChoices = ['txt', 'mp4', 'pdf'];
420    let documentPicker = new picker.DocumentViewPicker(context);
421    documentPicker.save(documentSaveOptions).then((documentSaveResult: Array<string>) => {
422      if (documentSaveOptions.fileSuffixChoices != undefined && documentSaveResult != undefined) {
423        //获取保存文件的后缀类型的下标
424        let index = documentPicker.getSelectedIndex();
425        //获取保存文件的后缀类型。
426        let selectedsuffix = documentSaveOptions.fileSuffixChoices[index];
427        console.info ('DocumentViewPicker.save selectedsuffix is ' + selectedsuffix);
428      }
429      console.info('DocumentViewPicker.save successfully, documentSaveResult uri: ' + JSON.stringify(documentSaveResult));
430    }).catch((err: BusinessError) => {
431      console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err));
432    });
433  } catch (error) {
434    let err: BusinessError = error as BusinessError;
435    console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err));
436  }
437}
438```
439## AudioViewPicker
440
441音频选择器对象,用来支撑选择和保存音频类文件等用户场景。在使用前,需要先创建AudioViewPicker实例。
442
443**系统能力**:SystemCapability.FileManagement.UserFileService
444
445### constructor<sup>12+</sup>
446
447constructor(context: Context)
448
449创建AudioViewPicker对象,推荐使用该构造函数,获取context参考[getContext](../apis-arkui/js-apis-getContext.md)。
450
451**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
452
453**系统能力**:SystemCapability.FileManagement.UserFileService
454
455**参数:**
456| 参数名  | 类型    | 必填 | 说明                                                         |
457| ------- | ------- | ---- | ------------------------------------------------------------ |
458| context | Context| 是   | 应用上下文(仅支持UIAbilityContext)。Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
459
460**示例:**
461
462```ts
463import { common } from '@kit.AbilityKit';
464import  { picker } from '@kit.CoreFileKit';
465@Entry
466@Component
467struct Index {
468  @State message: string = 'hello World';
469
470  build() {
471    Row() {
472      Column() {
473        Text(this.message)
474          .fontSize(50)
475          .fontWeight(FontWeight.Bold)
476          .onClick(()=>{
477            let context = getContext(this) as common.Context; // 请确保getContext(this)返回结果为UIAbilityContext
478            let audioPicker = new picker.AudioViewPicker(context);
479          })
480      }
481      .width('100%')
482    }
483    .height('100%')
484  }
485}
486```
487### constructor<sup>12+</sup>
488
489constructor()
490
491创建AudioViewPicker对象,不推荐使用该构造函数,会出现概率性失败问题。
492
493**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
494
495**系统能力**:SystemCapability.FileManagement.UserFileService
496
497**示例:**
498
499```ts
500let audioPicker = new picker.AudioViewPicker(); // 不推荐使用无参构造,会出现概率性拉起失败问题
501```
502
503### select
504
505select(option?: AudioSelectOptions): Promise&lt;Array&lt;string&gt;&gt;
506
507通过选择模式拉起audioPicker界面,用户可以选择一个或多个音频文件。接口采用Promise异步返回形式,传入可选参数AudioSelectOptions对象,返回选择音频文件的uri数组。
508
509**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[媒体类uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri介绍)。
510
511**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
512
513**系统能力**:SystemCapability.FileManagement.UserFileService
514
515**参数:**
516
517| 参数名  | 类型    | 必填 | 说明                       |
518| ------- | ------- | ---- | -------------------------- |
519| option | [AudioSelectOptions](#audioselectoptions) | 否   | audioPicker音频选择选项。若无此参数,则默认拉起audioPicker主界面。  |
520
521**返回值:**
522
523| 类型                            | 说明    |
524| ----------------------------- | :---- |
525| Promise&lt;Array&lt;string&gt;&gt; | Promise对象。返回audioPicker选择音频后的结果集。 |
526
527**示例:**
528
529```ts
530import { BusinessError } from '@kit.BasicServicesKit';
531import { common } from '@kit.AbilityKit';
532import  { picker } from '@kit.CoreFileKit';
533async function example13(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
534  try {
535    let audioSelectOptions = new picker.AudioSelectOptions();
536    let audioPicker = new picker.AudioViewPicker(context);
537    audioPicker.select(audioSelectOptions).then((audioSelectResult: Array<string>) => {
538      console.info('AudioViewPicker.select successfully, audioSelectResult uri: ' + JSON.stringify(audioSelectResult));
539    }).catch((err: BusinessError) => {
540      console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err));
541    });
542  } catch (error) {
543    let err: BusinessError = error as BusinessError;
544    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
545  }
546}
547```
548
549### select
550
551select(option: AudioSelectOptions, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
552
553通过选择模式拉起audioPicker界面,用户可以选择一个或多个音频文件。接口采用callback异步返回形式,传入参数AudioSelectOptions对象,返回选择音频文件的uri数组。
554
555**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[媒体类uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri介绍)。
556
557**系统能力**:SystemCapability.FileManagement.UserFileService
558
559**参数:**
560
561| 参数名  | 类型    | 必填 | 说明                       |
562| ------- | ------- | ---- | -------------------------- |
563| option | [AudioSelectOptions](#audioselectoptions) | 是   | audioPicker音频选择选项。 |
564| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回audioPicker选择音频后的结果集。 |
565
566**示例:**
567
568```ts
569import { BusinessError } from '@kit.BasicServicesKit';
570import { common } from '@kit.AbilityKit';
571import  { picker } from '@kit.CoreFileKit';
572async function example14(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
573  try {
574    let audioSelectOptions = new picker.AudioSelectOptions();
575    let audioPicker = new picker.AudioViewPicker(context);
576    audioPicker.select(audioSelectOptions, (err: BusinessError, audioSelectResult: Array<string>) => {
577      if (err) {
578        console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err));
579        return;
580      }
581      console.info('AudioViewPicker.select successfully, audioSelectResult uri: ' + JSON.stringify(audioSelectResult));
582    });
583  } catch (error) {
584    let err: BusinessError = error as BusinessError;
585    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
586  }
587}
588```
589
590### select
591
592select(callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
593
594通过选择模式拉起audioPicker界面,用户可以选择一个或多个音频文件。接口采用callback异步返回形式,返回选择音频文件的uri数组。
595
596**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[媒体类uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri介绍)。
597
598**系统能力**:SystemCapability.FileManagement.UserFileService
599
600**参数:**
601
602| 参数名  | 类型    | 必填 | 说明                       |
603| ------- | ------- | ---- | -------------------------- |
604| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回audioPicker选择音频后的结果集。 |
605
606**示例:**
607
608```ts
609import { BusinessError } from '@kit.BasicServicesKit';
610import { common } from '@kit.AbilityKit';
611import  { picker } from '@kit.CoreFileKit';
612async function example15(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
613  try {
614    let audioPicker = new picker.AudioViewPicker(context);
615    audioPicker.select((err: BusinessError, audioSelectResult: Array<string>) => {
616      if (err) {
617        console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err));
618        return;
619      }
620      console.info('AudioViewPicker.select successfully, audioSelectResult uri: ' + JSON.stringify(audioSelectResult));
621    });
622  } catch (error) {
623    let err: BusinessError = error as BusinessError;
624    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
625  }
626}
627```
628
629### save
630
631save(option?: AudioSaveOptions): Promise&lt;Array&lt;string&gt;&gt;
632
633通过保存模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以保存一个或多个音频文件。接口采用Promise异步返回形式,传入可选参数AudioSaveOptions对象,返回保存音频文件的uri数组。
634
635**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
636
637**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
638
639**系统能力**:SystemCapability.FileManagement.UserFileService
640
641**参数:**
642
643| 参数名  | 类型    | 必填 | 说明                       |
644| ------- | ------- | ---- | -------------------------- |
645| option | [AudioSaveOptions](#audiosaveoptions) | 否   | audioPicker保存音频文件选项。若无此参数,则拉起audioPicker界面后需用户自行输入保存的文件名。 |
646
647**返回值:**
648
649| 类型                            | 说明    |
650| ----------------------------- | ---- |
651| Promise&lt;Array&lt;string&gt;&gt; | Promise对象。返回audioPicker保存音频文件后的结果集。 |
652
653**示例:**
654
655```ts
656import { BusinessError } from '@kit.BasicServicesKit';
657import { common } from '@kit.AbilityKit';
658import  { picker } from '@kit.CoreFileKit';
659async function example16(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
660  try {
661    let audioSaveOptions = new picker.AudioSaveOptions();
662    audioSaveOptions.newFileNames = ['AudioViewPicker01.mp3'];
663    let audioPicker = new picker.AudioViewPicker(context);
664    audioPicker.save(audioSaveOptions).then((audioSaveResult: Array<string>) => {
665      console.info('AudioViewPicker.save successfully, audioSaveResult uri: ' + JSON.stringify(audioSaveResult))
666    }).catch((err: BusinessError) => {
667      console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err));
668    });
669  } catch (error) {
670    let err: BusinessError = error as BusinessError;
671    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
672  }
673}
674```
675
676### save
677
678save(option: AudioSaveOptions, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
679
680通过保存模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以保存一个或多个音频文件。接口采用callback异步返回形式,传入参数AudioSaveOptions对象,返回保存音频文件的uri数组。
681
682**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
683
684**系统能力**:SystemCapability.FileManagement.UserFileService
685
686**参数:**
687
688| 参数名  | 类型    | 必填 | 说明                       |
689| ------- | ------- | ---- | -------------------------- |
690| option | [AudioSaveOptions](#audiosaveoptions) | 是   | audioPicker保存音频文件选项。 |
691| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回audioPicker保存音频文件后的结果集。 |
692
693**示例:**
694
695```ts
696import { BusinessError } from '@kit.BasicServicesKit';
697import { common } from '@kit.AbilityKit';
698import  { picker } from '@kit.CoreFileKit';
699async function example17(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
700  try {
701    let audioSaveOptions = new picker.AudioSaveOptions();
702    audioSaveOptions.newFileNames = ['AudioViewPicker02.mp3'];
703    let audioPicker = new picker.AudioViewPicker(context);
704    audioPicker.save(audioSaveOptions, (err: BusinessError, audioSaveResult: Array<string>) => {
705      if (err) {
706        console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err));
707        return;
708      }
709      console.info('AudioViewPicker.save successfully, audioSaveResult uri: ' + JSON.stringify(audioSaveResult));
710    });
711  } catch (error) {
712    let err: BusinessError = error as BusinessError;
713    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
714  }
715}
716```
717
718### save
719
720save(callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
721
722通过保存模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以保存一个或多个音频文件。接口采用callback异步返回形式,返回保存音频文件的uri数组。
723
724**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
725
726**系统能力**:SystemCapability.FileManagement.UserFileService
727
728**参数:**
729
730| 参数名  | 类型    | 必填 | 说明                       |
731| ------- | ------- | ---- | -------------------------- |
732| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回audioPicker保存音频文件后的结果集。 |
733
734**示例:**
735
736```ts
737import { BusinessError } from '@kit.BasicServicesKit';
738import { common } from '@kit.AbilityKit';
739import  { picker } from '@kit.CoreFileKit';
740async function example18(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
741  try {
742    let audioPicker = new picker.AudioViewPicker(context);
743    audioPicker.save((err: BusinessError, audioSaveResult: Array<string>) => {
744      if (err) {
745        console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err));
746        return;
747      }
748      console.info('AudioViewPicker.save successfully, audioSaveResult uri: ' + JSON.stringify(audioSaveResult));
749    });
750  } catch (error) {
751    let err: BusinessError = error as BusinessError;
752    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
753  }
754}
755```
756
757## DocumentSelectMode<sup>11+</sup>
758
759枚举,picker选择的文档类型。
760
761仅支持2in1设备。
762
763**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
764
765**系统能力**:SystemCapability.FileManagement.UserFileService.FolderSelection
766
767| 名称  |  值 |  说明 |
768| ----- |  ---- | ---- |
769| FILE  | 0  | 文件类型。  |
770| FOLDER | 1  | 文件夹类型。  |
771| MIXED | 2  | 文件和文件夹混合类型。  |
772
773## DocumentSelectOptions
774
775文档选择选项。
776
777**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
778
779**系统能力**:SystemCapability.FileManagement.UserFileService
780
781| 名称                    | 类型                                          | 必填 | 说明                                       |
782| :---------------------- |---------------------------------------------| ---- |------------------------------------------|
783| maxSelectNumber<sup>10+</sup>       | number                                      | 否   | 选择文件最大个数,上限500,有效值范围1-500(选择目录仅对具有该系统能力的设备开放。且目录选择的最大个数为1)。默认值是1。<br>**系统能力**:SystemCapability.FileManagement.UserFileService  |
784| defaultFilePathUri<sup>10+</sup>    | string                                      | 否   | 指定选择的文件或者目录路径。                            |
785| fileSuffixFilters<sup>10+</sup>     | Array&lt;string&gt;                         | 否   | 选择文件的后缀类型。传入字符串数组,每一项代表一个后缀选项,每一项内部用"\|\"分为两部分,第一部分为描述,第二部分为过滤后缀。没有"\|\"则没有描述,该项整体是一个过滤后缀。每项过滤后缀可以存在多个后缀名,则每一个后缀名之间用英文逗号进行分隔,传入数组长度不能超过100。仅对具有该系统能力的设备开放。默认不过滤,即显示所有文件。<br>**系统能力**:SystemCapability.FileManagement.UserFileService   |
786| selectMode<sup>11+</sup>         | [DocumentSelectMode](#documentselectmode11) | 否   | 仅支持2in1设备。默认值是文件类型。<br>**系统能力**:SystemCapability.FileManagement.UserFileService.FolderSelection  |
787| authMode<sup>12+</sup>    | boolean                              | 否   | 拉起授权picker,默认为false(非授权模式)。当authMode为true时为授权模式,defaultFilePathUri必填,表明待授权uri。仅支持2in1设备。<br>**系统能力**:SystemCapability.FileManagement.UserFileService.FolderSelection  |
788|multiAuthMode<sup>15+</sup>  | boolean                             |否    | 支持批量授权模式,默认为false(非批量授权模式)。当multAuthMode为true时为批量授权模式。当multAuthMode为true时,只有multiUriArray参数生效,其他参数不生效。仅支持手机设备。<br>**原子化服务API**:从API version 15开始,该接口支持在原子化服务中使用。|
789|multiUriArray<sup>15+</sup>  | Array&lt;string&gt;                             |否    | 传入需要批量授权的uri数组(仅支持文件,文件夹不生效)。配合multAuthMode使用。当multAuthMode为false时,配置该参数不生效。仅支持手机设备。<br>**原子化服务API**:从API version 15开始,该接口支持在原子化服务中使用。|
790|mergeMode<sup>15+</sup>  | [MergeTypeMode](#mergetypemode15)                             |否    | 开启聚合视图模式,支持拉起文件管理应用的聚合视图。默认为DEFAULT,表示该参数不生效,非聚合视图。当该参数置为非DEFAULT时,其他参数不生效。仅支持手机设备。<br>**原子化服务API**:从API version 15开始,该接口支持在原子化服务中使用。|
791
792## DocumentPickerMode<sup>12+</sup>
793
794枚举,picker保存的模式。
795
796**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
797
798**系统能力**:SystemCapability.FileManagement.UserFileService
799
800| 名称  |  值 |  说明 |
801| ----- |  ---- | ---- |
802| DEFAULT  | 0  | 标准模式。 |
803| DOWNLOAD | 1  | 下载模式。 |
804
805## MergeTypeMode<sup>15+</sup>
806
807枚举,文件聚合类型。仅支持手机设备。
808
809**原子化服务API**:从API version 15开始,该接口支持在原子化服务中使用。
810
811**系统能力**:SystemCapability.FileManagement.UserFileService
812
813| 名称  |  值 |  说明 |
814| ----- | ---- | ---- |
815| DEFAULT  | 0  | 默认模式,表示该参数不生效。 |
816| AUDIO | 1  | 音频文件模式。 |
817| VIDEO  | 2  | 视频文件模式。 |
818| DOCUMENT | 3  | 文档文件模式。 |
819| PICTURE  | 4  | 图片文件模式。 |
820
821## DocumentSaveOptions
822
823文档保存选项。
824
825**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
826
827**系统能力**:SystemCapability.FileManagement.UserFileService
828
829| 名称                    | 类型                | 必填 |  说明                           |
830| ----------------------- | ------------------- | ---- | ---------------------------- |
831| newFileNames            | Array&lt;string&gt;    | 否   | 拉起documentPicker进行保存的文件名。若无此参数,则默认需要用户自行输入。  |
832| defaultFilePathUri<sup>10+</sup>    | string  | 否   | 指定保存的文件或者目录路径。  |
833| fileSuffixChoices<sup>10+</sup>     | Array&lt;string&gt; | 否   | 保存文件的后缀类型。传入字符串数组,每一项代表一个后缀选项,每一项内部用"\|\"分为两部分,第一部分为描述,第二部分为要保存的后缀。没有"\|\"则没有描述,该项整体是一个保存的后缀。默认没有后缀类型。 |
834| pickerMode<sup>12+</sup>     | [DocumentPickerMode](#documentpickermode12) | 否   | 拉起picker的类型, 默认为DEFAULT。当pickerMode设置为DOWNLOAD时,用户配置的参数newFileNames、defaultFilePathUri和fileSuffixChoices将不会生效。 |
835
836## AudioSelectOptions
837
838音频选择选项。
839
840**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
841
842**系统能力**:SystemCapability.FileManagement.UserFileService
843| 名称                    | 类型                                          | 必填 | 说明                                       |
844| :---------------------- |---------------------------------------------| ---- |------------------------------------------|
845| maxSelectNumber<sup>12+</sup>       | number                                      | 否   | 选择文件最大个数,默认值为1,上限500,有效值范围1-500 |
846
847## AudioSaveOptions
848
849音频的保存选项。
850
851**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
852
853**系统能力**:SystemCapability.FileManagement.UserFileService
854
855| 名称                    | 类型                | 必填 |  说明                           |
856| ----------------------- | ------------------- | ---- | ---------------------------- |
857| newFileNames              | Array&lt;string&gt;    | 否  | 拉起audioPicker进行保存音频资源的文件名。若无此参数,则默认需要用户自行输入。 |
858
859## PhotoViewPicker<sup>(deprecated)</sup>
860
861图库选择器对象,用来支撑选择图片/视频和保存图片/视频等用户场景。选择文件推荐使用[PhotoAccessHelper的PhotoViewPicker](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoviewpicker)。在使用前,需要先创建PhotoViewPicker实例。
862
863> **说明:**
864>
865> 从API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewPicker](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoviewpicker)替代。
866
867**系统能力**:SystemCapability.FileManagement.UserFileService
868
869### constructor<sup>12+</sup>
870
871constructor(context: Context)
872
873**系统能力**:SystemCapability.FileManagement.UserFileService
874
875创建PhotoViewPicker对象,推荐使用该构造函数,获取context参考[getContext](../apis-arkui/js-apis-getContext.md)。
876
877**示例:**
878
879```ts
880import { common } from '@kit.AbilityKit';
881import  { picker } from '@kit.CoreFileKit';
882@Entry
883@Component
884struct Index {
885  @State message: string = 'hello World';
886
887  build() {
888    Row() {
889      Column() {
890        Text(this.message)
891          .fontSize(50)
892          .fontWeight(FontWeight.Bold)
893          .onClick(()=>{
894            let context = getContext(this) as common.Context; // 请确保 getContext(this) 返回结果为 UIAbilityContext
895            let photoPicker = new picker.PhotoViewPicker(context);
896          })
897      }
898      .width('100%')
899    }
900    .height('100%')
901  }
902}
903```
904
905### constructor<sup>12+</sup>
906
907constructor()
908
909**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。
910
911**系统能力**:SystemCapability.FileManagement.UserFileService
912
913创建PhotoViewPicker对象,不推荐使用该构造函数,会出现概率性失败问题。
914
915**示例:**
916
917```ts
918let photoPicker = new picker.PhotoViewPicker(); // 不推荐使用无参构造,会出现概率性拉起失败问题
919```
920
921### select
922
923select(option?: PhotoSelectOptions): Promise&lt;PhotoSelectResult&gt;
924
925通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用Promise异步返回形式,传入可选参数PhotoSelectOptions对象,返回PhotoSelectResult对象。
926
927> **说明:**
928>
929> 从API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewPicker#select](../apis-media-library-kit/js-apis-photoAccessHelper.md#select)替代。
930
931**注意**:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](../apis-media-library-kit/js-apis-photoAccessHelper.md#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。
932
933**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
934
935**系统能力**:SystemCapability.FileManagement.UserFileService
936
937**参数:**
938
939| 参数名  | 类型    | 必填 | 说明                       |
940| ------- | ------- | ---- | -------------------------- |
941| option | [PhotoSelectOptions](#photoselectoptionsdeprecated) | 否   | photoPicker选择选项。若无此参数,则默认选择媒体文件类型为图片和视频类型。选择媒体文件数量的默认最大值为50。 |
942
943**返回值:**
944
945| 类型                            | 说明    |
946| ----------------------------- | :---- |
947| Promise&lt;[PhotoSelectResult](#photoselectresultdeprecated)&gt; | Promise对象。返回photoPicker选择后的结果集。 |
948
949**示例:**
950
951```ts
952import { BusinessError } from '@kit.BasicServicesKit';
953import { common } from '@kit.AbilityKit';
954import  { picker } from '@kit.CoreFileKit';
955async function example01(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
956  try {
957    let photoSelectOptions = new picker.PhotoSelectOptions();
958    photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
959    photoSelectOptions.maxSelectNumber = 5;
960    let photoPicker = new picker.PhotoViewPicker(context);
961    photoPicker.select(photoSelectOptions).then((photoSelectResult: picker.PhotoSelectResult) => {
962      console.info('PhotoViewPicker.select successfully, photoSelectResult uri: ' + JSON.stringify(photoSelectResult));
963    }).catch((err: BusinessError) => {
964      console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
965    });
966  } catch (error) {
967    let err: BusinessError = error as BusinessError;
968    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
969  }
970}
971```
972
973### select
974
975select(option: PhotoSelectOptions, callback: AsyncCallback&lt;PhotoSelectResult&gt;): void
976
977通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,传入参数PhotoSelectOptions对象,返回PhotoSelectResult对象。
978
979> **说明:**
980>
981> 从API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewPicker#select](../apis-media-library-kit/js-apis-photoAccessHelper.md#select-1)替代。
982
983**注意**:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](../apis-media-library-kit/js-apis-photoAccessHelper.md#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。
984
985**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
986
987**系统能力**:SystemCapability.FileManagement.UserFileService
988
989**参数:**
990
991| 参数名  | 类型    | 必填 | 说明                       |
992| ------- | ------- | ---- | -------------------------- |
993| option | [PhotoSelectOptions](#photoselectoptionsdeprecated) | 是   | photoPicker选择选项。 |
994| callback | AsyncCallback&lt;[PhotoSelectResult](#photoselectresultdeprecated)&gt;      | 是   | callback 返回photoPicker选择后的结果集。 |
995
996**示例:**
997
998```ts
999import { BusinessError } from '@kit.BasicServicesKit';
1000import { common } from '@kit.AbilityKit';
1001import  { picker } from '@kit.CoreFileKit';
1002async function example02(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
1003  try {
1004    let photoSelectOptions = new picker.PhotoSelectOptions();
1005    photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
1006    photoSelectOptions.maxSelectNumber = 5;
1007    let photoPicker = new picker.PhotoViewPicker(context);
1008    photoPicker.select(photoSelectOptions, (err: BusinessError, photoSelectResult: picker.PhotoSelectResult) => {
1009      if (err) {
1010        console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
1011        return;
1012      }
1013      console.info('PhotoViewPicker.select successfully, photoSelectResult uri: ' + JSON.stringify(photoSelectResult));
1014    });
1015  } catch (error) {
1016    let err: BusinessError = error as BusinessError;
1017    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
1018  }
1019}
1020```
1021
1022### select
1023
1024select(callback: AsyncCallback&lt;PhotoSelectResult&gt;): void
1025
1026通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,返回PhotoSelectResult对象。
1027
1028> **说明:**
1029>
1030> 从API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewPicker#select](../apis-media-library-kit/js-apis-photoAccessHelper.md#select-2)替代。
1031
1032**注意**:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](../apis-media-library-kit/js-apis-photoAccessHelper.md#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。
1033
1034**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
1035
1036**系统能力**:SystemCapability.FileManagement.UserFileService
1037
1038**参数:**
1039
1040| 参数名  | 类型    | 必填 | 说明                       |
1041| ------- | ------- | ---- | -------------------------- |
1042| callback | AsyncCallback&lt;[PhotoSelectResult](#photoselectresultdeprecated)&gt;      | 是   | callback 返回photoPicker选择后的结果集。 |
1043
1044**示例:**
1045
1046```ts
1047import { BusinessError } from '@kit.BasicServicesKit';
1048import { common } from '@kit.AbilityKit';
1049import  { picker } from '@kit.CoreFileKit';
1050async function example03(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
1051  try {
1052    let photoPicker = new picker.PhotoViewPicker(context);
1053    photoPicker.select((err: BusinessError, photoSelectResult: picker.PhotoSelectResult) => {
1054      if (err) {
1055        console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
1056        return;
1057      }
1058      console.info('PhotoViewPicker.select successfully, photoSelectResult uri: ' + JSON.stringify(photoSelectResult));
1059    });
1060  } catch (error) {
1061    let err: BusinessError = error as BusinessError;
1062    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
1063  }
1064}
1065```
1066
1067### save
1068
1069save(option?: PhotoSaveOptions): Promise&lt;Array&lt;string&gt;&gt;
1070
1071通过保存模式拉起photoPicker界面,用户可以保存一个或多个图片/视频。接口采用Promise异步返回形式,传入可选参数PhotoSaveOptions对象,返回保存文件的uri数组。
1072
1073> **说明:**
1074>
1075> 从API version 9开始支持,从API version 12开始废弃。建议使用[SaveButton](../apis-arkui/arkui-ts/ts-security-components-savebutton.md#savebutton)替代。
1076
1077**注意**:此接口会将文件保存在文件管理器,而不是图库。返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
1078
1079**系统能力**:SystemCapability.FileManagement.UserFileService
1080
1081**参数:**
1082
1083| 参数名  | 类型    | 必填 | 说明                       |
1084| ------- | ------- | ---- | -------------------------- |
1085| option | [PhotoSaveOptions](#photosaveoptionsdeprecated) | 否   | photoPicker保存图片或视频文件选项。若无此参数,则拉起photoPicker界面后需用户自行输入保存的文件名。 |
1086
1087**返回值:**
1088
1089| 类型                            | 说明    |
1090| ----------------------------- | :---- |
1091| Promise&lt;Array&lt;string&gt;&gt; | Promise对象。返回photoPicker保存图片或视频文件后的结果集。 |
1092
1093**示例:**
1094
1095```ts
1096import { BusinessError } from '@kit.BasicServicesKit';
1097import { common } from '@kit.AbilityKit';
1098import  { picker } from '@kit.CoreFileKit';
1099async function example04(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
1100  try {
1101    let photoSaveOptions = new picker.PhotoSaveOptions();
1102    photoSaveOptions.newFileNames = ['PhotoViewPicker01.jpg', 'PhotoViewPicker01.mp4'];
1103    let photoPicker = new picker.PhotoViewPicker(context);
1104    photoPicker.save(photoSaveOptions).then((photoSaveResult: Array<string>) => {
1105      console.info('PhotoViewPicker.save successfully, photoSaveResult uri: ' + JSON.stringify(photoSaveResult));
1106    }).catch((err: BusinessError) => {
1107      console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err));
1108    });
1109  } catch (error) {
1110    let err: BusinessError = error as BusinessError;
1111      console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
1112  }
1113}
1114```
1115
1116### save
1117
1118save(option: PhotoSaveOptions, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
1119
1120通过保存模式拉起photoPicker界面,用户可以保存一个或多个图片/视频。接口采用callback异步返回形式,传入参数PhotoSaveOptions对象,返回保存文件的uri数组。
1121
1122> **说明:**
1123>
1124> 从API version 9开始支持,从API version 12开始废弃。建议使用[SaveButton](../apis-arkui/arkui-ts/ts-security-components-savebutton.md#savebutton)替代。
1125
1126**注意**:此接口会将文件保存在文件管理器,而不是图库。返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
1127
1128**系统能力**:SystemCapability.FileManagement.UserFileService
1129
1130**参数:**
1131
1132| 参数名  | 类型    | 必填 | 说明                       |
1133| ------- | ------- | ---- | -------------------------- |
1134| option | [PhotoSaveOptions](#photosaveoptionsdeprecated) | 是   | photoPicker保存图片或视频文件选项。 |
1135| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回photoPicker保存图片或视频文件后的结果集。 |
1136
1137**示例:**
1138
1139```ts
1140import { BusinessError } from '@kit.BasicServicesKit';
1141import { common } from '@kit.AbilityKit';
1142import  { picker } from '@kit.CoreFileKit';
1143async function example05(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
1144  try {
1145    let photoSaveOptions = new picker.PhotoSaveOptions();
1146    photoSaveOptions.newFileNames = ['PhotoViewPicker02.jpg','PhotoViewPicker02.mp4'];
1147    let photoPicker = new picker.PhotoViewPicker(context);
1148    photoPicker.save(photoSaveOptions, (err: BusinessError, photoSaveResult: Array<string>) => {
1149      if (err) {
1150        console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err));
1151        return;
1152      }
1153      console.info('PhotoViewPicker.save successfully, photoSaveResult uri: ' + JSON.stringify(photoSaveResult));
1154    });
1155  } catch (error) {
1156    let err: BusinessError = error as BusinessError;
1157    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
1158  }
1159}
1160```
1161
1162### save
1163
1164save(callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
1165
1166通过保存模式拉起photoPicker界面,用户可以保存一个或多个图片/视频。接口采用callback异步返回形式,返回保存文件的uri数组。
1167
1168> **说明:**
1169>
1170> 从API version 9开始支持,从API version 12开始废弃。建议使用[SaveButton](../apis-arkui/arkui-ts/ts-security-components-savebutton.md#savebutton)替代。
1171
1172**注意**:此接口会将文件保存在文件管理器,而不是图库。返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
1173
1174**系统能力**:SystemCapability.FileManagement.UserFileService
1175
1176**参数:**
1177
1178| 参数名  | 类型    | 必填 | 说明                       |
1179| ------- | ------- | ---- | -------------------------- |
1180| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回photoPicker保存图片或视频文件后的结果集。 |
1181
1182**示例:**
1183
1184```ts
1185import { BusinessError } from '@kit.BasicServicesKit';
1186import { common } from '@kit.AbilityKit';
1187import  { picker } from '@kit.CoreFileKit';
1188async function example06(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
1189  try {
1190    let photoPicker = new picker.PhotoViewPicker(context);
1191    photoPicker.save((err: BusinessError, photoSaveResult: Array<string>) => {
1192      if (err) {
1193        console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err));
1194        return;
1195      }
1196      console.info('PhotoViewPicker.save successfully, photoSaveResult uri: ' + JSON.stringify(photoSaveResult));
1197    });
1198  } catch (error) {
1199    let err: BusinessError = error as BusinessError;
1200    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
1201  }
1202}
1203```
1204
1205## PhotoViewMIMETypes<sup>(deprecated)</sup>
1206
1207枚举,可选择的媒体文件类型。
1208
1209> **说明:**
1210>
1211> 从API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewMIMETypes](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoviewmimetypes)替代。
1212
1213**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
1214
1215**系统能力**:SystemCapability.FileManagement.UserFileService
1216
1217| 名称  |  值 |  说明 |
1218| ----- |  ---- | ---- |
1219| IMAGE_TYPE  |  'image/*' | 图片类型。  |
1220| VIDEO_TYPE |  'video/*' | 视频类型。  |
1221| IMAGE_VIDEO_TYPE |  '\*/*' | 图片和视频类型。  |
1222
1223## PhotoSelectOptions<sup>(deprecated)</sup>
1224
1225图库选择选项。
1226
1227> **说明:**
1228>
1229> 从API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoSelectOptions](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoselectoptions)替代。
1230
1231**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
1232
1233**系统能力**:SystemCapability.FileManagement.UserFileService
1234
1235| 名称                    | 类型                | 必填 | 说明                          |
1236| ----------------------- | ------------------- | ---- | -------------------------------- |
1237| MIMEType              | [PhotoViewMIMETypes](#photoviewmimetypesdeprecated)   | 否   | 可选择的媒体文件类型。若无此参数,则默认为图片和视频类型。  |
1238| maxSelectNumber       | number | 否   | 选择媒体文件数量的最大值(默认值为50,最大值为500)。      |
1239
1240## PhotoSelectResult<sup>(deprecated)</sup>
1241
1242返回图库选择后的结果集。
1243
1244> **说明:**
1245>
1246> 从API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoSelectResult](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoselectresult)替代。
1247
1248**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
1249
1250**系统能力**:SystemCapability.FileManagement.UserFileService
1251
1252| 名称                    | 类型                | 必填 | 说明                           |
1253| ----------------------- | ------------------- | ----| ------------------------------ |
1254| photoUris        | Array&lt;string&gt;    | 是   | 返回图库选择后的媒体文件的uri数组。此uri数组只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](../apis-media-library-kit/js-apis-photoAccessHelper.md#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。  |
1255| isOriginalPhoto        | boolean    | 是   | 返回图库选择后的媒体文件是否为原图。true为原图;false不是原图。  |
1256
1257## PhotoSaveOptions<sup>(deprecated)</sup>
1258
1259图片或视频的保存选项。
1260
1261> **说明:**
1262>
1263> 从API version 9开始支持,从API version 12开始废弃。无替代接口和替代方法。
1264
1265**系统能力**:SystemCapability.FileManagement.UserFileService
1266
1267| 名称                    | 类型                | 必填 |  说明                           |
1268| ----------------------- | ------------------- | ---- | ---------------------------- |
1269| newFileNames              | Array&lt;string&gt;    | 否  | 拉起photoPicker进行保存图片或视频资源的文件名。若无此参数,则默认需要用户自行输入。 |