• 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## AudioViewPicker
392
393音频选择器对象,用来支撑选择和保存音频类文件等用户场景。在使用前,需要先创建AudioViewPicker实例。
394
395**系统能力**:SystemCapability.FileManagement.UserFileService
396
397### constructor<sup>12+</sup>
398
399constructor(context: Context)
400
401创建AudioViewPicker对象,推荐使用该构造函数,获取context参考[getContext](../apis-arkui/js-apis-getContext.md)
402
403**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
404
405**系统能力**:SystemCapability.FileManagement.UserFileService
406
407**参数:**
408| 参数名  | 类型    | 必填 | 说明                                                         |
409| ------- | ------- | ---- | ------------------------------------------------------------ |
410| context | Context| 是   | 应用上下文(仅支持UIAbilityContext)。Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
411
412**示例:**
413
414```ts
415import { common } from '@kit.AbilityKit';
416import  { picker } from '@kit.CoreFileKit';
417@Entry
418@Component
419struct Index {
420  @State message: string = 'hello World';
421
422  build() {
423    Row() {
424      Column() {
425        Text(this.message)
426          .fontSize(50)
427          .fontWeight(FontWeight.Bold)
428          .onClick(()=>{
429            let context = getContext(this) as common.Context; // 请确保getContext(this)返回结果为UIAbilityContext
430            let audioPicker = new picker.AudioViewPicker(context);
431          })
432      }
433      .width('100%')
434    }
435    .height('100%')
436  }
437}
438```
439### constructor<sup>12+</sup>
440
441constructor()
442
443创建AudioViewPicker对象,不推荐使用该构造函数,会出现概率性失败问题
444
445**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
446
447**系统能力**:SystemCapability.FileManagement.UserFileService
448
449**示例:**
450
451```ts
452let audioPicker = new picker.AudioViewPicker(); // 不推荐使用无参构造,会出现概率性拉起失败问题
453```
454
455### select
456
457select(option?: AudioSelectOptions): Promise&lt;Array&lt;string&gt;&gt;
458
459通过选择模式拉起audioPicker界面,用户可以选择一个或多个音频文件。接口采用Promise异步返回形式,传入可选参数AudioSelectOptions对象,返回选择音频文件的uri数组。
460
461**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[媒体类uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri介绍)。
462
463**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
464
465**系统能力**:SystemCapability.FileManagement.UserFileService
466
467**参数:**
468
469| 参数名  | 类型    | 必填 | 说明                       |
470| ------- | ------- | ---- | -------------------------- |
471| option | [AudioSelectOptions](#audioselectoptions) | 否   | audioPicker音频选择选项,若无此参数,则默认拉起audioPicker主界面  |
472
473**返回值:**
474
475| 类型                            | 说明    |
476| ----------------------------- | :---- |
477| Promise&lt;Array&lt;string&gt;&gt; | Promise对象。返回audioPicker选择音频后的结果集 |
478
479**示例:**
480
481```ts
482import { BusinessError } from '@kit.BasicServicesKit';
483import { common } from '@kit.AbilityKit';
484import  { picker } from '@kit.CoreFileKit';
485async function example13(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
486  try {
487    let audioSelectOptions = new picker.AudioSelectOptions();
488    let audioPicker = new picker.AudioViewPicker(context);
489    audioPicker.select(audioSelectOptions).then((audioSelectResult: Array<string>) => {
490      console.info('AudioViewPicker.select successfully, audioSelectResult uri: ' + JSON.stringify(audioSelectResult));
491    }).catch((err: BusinessError) => {
492      console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err));
493    });
494  } catch (error) {
495    let err: BusinessError = error as BusinessError;
496    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
497  }
498}
499```
500
501### select
502
503select(option: AudioSelectOptions, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
504
505通过选择模式拉起audioPicker界面,用户可以选择一个或多个音频文件。接口采用callback异步返回形式,传入参数AudioSelectOptions对象,返回选择音频文件的uri数组。
506
507**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[媒体类uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri介绍)。
508
509**系统能力**:SystemCapability.FileManagement.UserFileService
510
511**参数:**
512
513| 参数名  | 类型    | 必填 | 说明                       |
514| ------- | ------- | ---- | -------------------------- |
515| option | [AudioSelectOptions](#audioselectoptions) | 是   | audioPicker音频选择选项 |
516| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回audioPicker选择音频后的结果集 |
517
518**示例:**
519
520```ts
521import { BusinessError } from '@kit.BasicServicesKit';
522import { common } from '@kit.AbilityKit';
523import  { picker } from '@kit.CoreFileKit';
524async function example14(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
525  try {
526    let audioSelectOptions = new picker.AudioSelectOptions();
527    let audioPicker = new picker.AudioViewPicker(context);
528    audioPicker.select(audioSelectOptions, (err: BusinessError, audioSelectResult: Array<string>) => {
529      if (err) {
530        console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err));
531        return;
532      }
533      console.info('AudioViewPicker.select successfully, audioSelectResult uri: ' + JSON.stringify(audioSelectResult));
534    });
535  } catch (error) {
536    let err: BusinessError = error as BusinessError;
537    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
538  }
539}
540```
541
542### select
543
544select(callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
545
546通过选择模式拉起audioPicker界面,用户可以选择一个或多个音频文件。接口采用callback异步返回形式,返回选择音频文件的uri数组。
547
548**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[媒体类uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri介绍)。
549
550**系统能力**:SystemCapability.FileManagement.UserFileService
551
552**参数:**
553
554| 参数名  | 类型    | 必填 | 说明                       |
555| ------- | ------- | ---- | -------------------------- |
556| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回audioPicker选择音频后的结果集 |
557
558**示例:**
559
560```ts
561import { BusinessError } from '@kit.BasicServicesKit';
562import { common } from '@kit.AbilityKit';
563import  { picker } from '@kit.CoreFileKit';
564async function example15(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
565  try {
566    let audioPicker = new picker.AudioViewPicker(context);
567    audioPicker.select((err: BusinessError, audioSelectResult: Array<string>) => {
568      if (err) {
569        console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err));
570        return;
571      }
572      console.info('AudioViewPicker.select successfully, audioSelectResult uri: ' + JSON.stringify(audioSelectResult));
573    });
574  } catch (error) {
575    let err: BusinessError = error as BusinessError;
576    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
577  }
578}
579```
580
581### save
582
583save(option?: AudioSaveOptions): Promise&lt;Array&lt;string&gt;&gt;
584
585通过保存模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以保存一个或多个音频文件。接口采用Promise异步返回形式,传入可选参数AudioSaveOptions对象,返回保存音频文件的uri数组。
586
587**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
588
589**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
590
591**系统能力**:SystemCapability.FileManagement.UserFileService
592
593**参数:**
594
595| 参数名  | 类型    | 必填 | 说明                       |
596| ------- | ------- | ---- | -------------------------- |
597| option | [AudioSaveOptions](#audiosaveoptions) | 否   | audioPicker保存音频文件选项,若无此参数,则拉起audioPicker界面后需用户自行输入保存的文件名 |
598
599**返回值:**
600
601| 类型                            | 说明    |
602| ----------------------------- | ---- |
603| Promise&lt;Array&lt;string&gt;&gt; | Promise对象。返回audioPicker保存音频文件后的结果集 |
604
605**示例:**
606
607```ts
608import { BusinessError } from '@kit.BasicServicesKit';
609import { common } from '@kit.AbilityKit';
610import  { picker } from '@kit.CoreFileKit';
611async function example16(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
612  try {
613    let audioSaveOptions = new picker.AudioSaveOptions();
614    audioSaveOptions.newFileNames = ['AudioViewPicker01.mp3'];
615    let audioPicker = new picker.AudioViewPicker(context);
616    audioPicker.save(audioSaveOptions).then((audioSaveResult: Array<string>) => {
617      console.info('AudioViewPicker.save successfully, audioSaveResult uri: ' + JSON.stringify(audioSaveResult))
618    }).catch((err: BusinessError) => {
619      console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err));
620    });
621  } catch (error) {
622    let err: BusinessError = error as BusinessError;
623    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
624  }
625}
626```
627
628### save
629
630save(option: AudioSaveOptions, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
631
632通过保存模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以保存一个或多个音频文件。接口采用callback异步返回形式,传入参数AudioSaveOptions对象,返回保存音频文件的uri数组。
633
634**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
635
636**系统能力**:SystemCapability.FileManagement.UserFileService
637
638**参数:**
639
640| 参数名  | 类型    | 必填 | 说明                       |
641| ------- | ------- | ---- | -------------------------- |
642| option | [AudioSaveOptions](#audiosaveoptions) | 是   | audioPicker保存音频文件选项 |
643| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回audioPicker保存音频文件后的结果集 |
644
645**示例:**
646
647```ts
648import { BusinessError } from '@kit.BasicServicesKit';
649import { common } from '@kit.AbilityKit';
650import  { picker } from '@kit.CoreFileKit';
651async function example17(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
652  try {
653    let audioSaveOptions = new picker.AudioSaveOptions();
654    audioSaveOptions.newFileNames = ['AudioViewPicker02.mp3'];
655    let audioPicker = new picker.AudioViewPicker(context);
656    audioPicker.save(audioSaveOptions, (err: BusinessError, audioSaveResult: Array<string>) => {
657      if (err) {
658        console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err));
659        return;
660      }
661      console.info('AudioViewPicker.save successfully, audioSaveResult uri: ' + JSON.stringify(audioSaveResult));
662    });
663  } catch (error) {
664    let err: BusinessError = error as BusinessError;
665    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
666  }
667}
668```
669
670### save
671
672save(callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
673
674通过保存模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以保存一个或多个音频文件。接口采用callback异步返回形式,返回保存音频文件的uri数组。
675
676**注意**:此接口返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
677
678**系统能力**:SystemCapability.FileManagement.UserFileService
679
680**参数:**
681
682| 参数名  | 类型    | 必填 | 说明                       |
683| ------- | ------- | ---- | -------------------------- |
684| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回audioPicker保存音频文件后的结果集 |
685
686**示例:**
687
688```ts
689import { BusinessError } from '@kit.BasicServicesKit';
690import { common } from '@kit.AbilityKit';
691import  { picker } from '@kit.CoreFileKit';
692async function example18(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
693  try {
694    let audioPicker = new picker.AudioViewPicker(context);
695    audioPicker.save((err: BusinessError, audioSaveResult: Array<string>) => {
696      if (err) {
697        console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err));
698        return;
699      }
700      console.info('AudioViewPicker.save successfully, audioSaveResult uri: ' + JSON.stringify(audioSaveResult));
701    });
702  } catch (error) {
703    let err: BusinessError = error as BusinessError;
704    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
705  }
706}
707```
708
709## DocumentSelectMode<sup>11+</sup>
710
711枚举,picker选择的文档类型。
712
713**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
714
715**系统能力:** SystemCapability.FileManagement.UserFileService.FolderSelection
716
717| 名称  |  值 |  说明 |
718| ----- |  ---- | ---- |
719| FILE  | 0  | 文件类型  |
720| FOLDER | 1  | 文件夹类型  |
721| MIXED | 2  | 文件和文件夹混合类型  |
722
723## DocumentSelectOptions
724
725文档选择选项。
726
727**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
728
729**系统能力:** SystemCapability.FileManagement.UserFileService
730
731| 名称                    | 类型                                          | 必填 | 说明                                       |
732| :---------------------- |---------------------------------------------| ---- |------------------------------------------|
733| maxSelectNumber<sup>10+</sup>       | number                                      | 否   | 选择文件最大个数,上限500,有效值范围1-500(选择目录仅对具有该系统能力的设备开放。且目录选择的最大个数为1)。默认值是1。**系统能力:** SystemCapability.FileManagement.UserFileService  |
734| defaultFilePathUri<sup>10+</sup>    | string                                      | 否   | 指定选择的文件或者目录路径                            |
735| fileSuffixFilters<sup>10+</sup>     | Array&lt;string&gt;                         | 否   | 选择文件的后缀类型,传入字符串数组,每一项代表一个后缀选项,每一项内部用"\|\"分为两部分,第一部分为描述,第二部分为过滤后缀。没有"\|\"则没有描述,该项整体是一个过滤后缀。每项过滤后缀可以存在多个后缀名,则每一个后缀名之间用英文逗号进行分隔,传入数组长度不能超过100。仅对具有该系统能力的设备开放。默认全部过滤,即显示所有文件。**系统能力:** SystemCapability.FileManagement.UserFileService   |
736| selectMode<sup>11+</sup>         | [DocumentSelectMode](#documentselectmode11) | 否   | 支持选择的资源类型,比如:文件、文件夹和二者混合,仅对具有该系统能力的设备开放,默认值是文件类型。**系统能力:** SystemCapability.FileManagement.UserFileService.FolderSelection  |
737| authMode<sup>12+</sup>    | boolean                              | 否   | 拉起授权picker,默认为false(非授权模式)。当authMode为true时为授权模式,defaultFilePathUri必填,表明待授权uri。仅对具有该系统能力的设备开放,**系统能力:** SystemCapability.FileManagement.UserFileService.FolderSelection  |
738
739## DocumentPickerMode<sup>12+</sup>
740
741枚举,picker选择的文档类型。
742
743**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
744
745**系统能力:** SystemCapability.FileManagement.UserFileService
746
747| 名称  |  值 |  说明 |
748| ----- |  ---- | ---- |
749| DEFAULT  | 0  | 标准模式 |
750| DOWNLOAD | 1  | 下载模式 |
751
752## DocumentSaveOptions
753
754文档保存选项。
755
756**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
757
758**系统能力:** SystemCapability.FileManagement.UserFileService
759
760| 名称                    | 类型                | 必填 |  说明                           |
761| ----------------------- | ------------------- | ---- | ---------------------------- |
762| newFileNames            | Array&lt;string&gt;    | 否   | 拉起documentPicker进行保存的文件名,若无此参数,则默认需要用户自行输入  |
763| defaultFilePathUri<sup>10+</sup>    | string  | 否   | 指定保存的文件或者目录路径  |
764| fileSuffixChoices<sup>10+</sup>     | Array&lt;string&gt; | 否   | 保存文件的后缀类型。传入字符串数组,每一项代表一个后缀选项,每一项内部用"\|\"分为两部分,第一部分为描述,第二部分为要保存的后缀。没有"\|\"则没有描述,该项整体是一个保存的后缀。默认没有后缀类型。 |
765| pickerMode<sup>12+</sup>     | [DocumentPickerMode](#documentpickermode12) | 否   | 拉起picker的类型, 默认为DEFAULT。当pickerMode设置为DOWNLOAD时,用户配置的参数newFileNames、defaultFilePathUri和fileSuffixChoices将不会生效 |
766
767## AudioSelectOptions
768
769音频选择选项。
770
771**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
772
773**系统能力:** SystemCapability.FileManagement.UserFileService
774| 名称                    | 类型                                          | 必填 | 说明                                       |
775| :---------------------- |---------------------------------------------| ---- |------------------------------------------|
776| maxSelectNumber<sup>12+</sup>       | number                                      | 否   | 选择文件最大个数,默认值为1,上限500,有效值范围1-500 |
777
778## AudioSaveOptions
779
780音频的保存选项。
781
782**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
783
784**系统能力:** SystemCapability.FileManagement.UserFileService
785
786| 名称                    | 类型                | 必填 |  说明                           |
787| ----------------------- | ------------------- | ---- | ---------------------------- |
788| newFileNames              | Array&lt;string&gt;    | 否  | 拉起audioPicker进行保存音频资源的文件名,若无此参数,则默认需要用户自行输入 |
789
790## PhotoViewPicker<sup>(deprecated)</sup>
791
792图库选择器对象,用来支撑选择图片/视频和保存图片/视频等用户场景。选择文件推荐使用[PhotoAccessHelper的PhotoViewPicker](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoviewpicker)。在使用前,需要先创建PhotoViewPicker实例。
793
794> **说明:**
795>
796> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewPicker](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoviewpicker)替代。
797
798**系统能力**:SystemCapability.FileManagement.UserFileService
799
800### constructor<sup>12+</sup>
801
802constructor(context: Context)
803
804**系统能力**:SystemCapability.FileManagement.UserFileService
805
806创建PhotoViewPicker对象,推荐使用该构造函数,获取context参考[getContext](../apis-arkui/js-apis-getContext.md)
807
808**示例:**
809
810```ts
811import { common } from '@kit.AbilityKit';
812import  { picker } from '@kit.CoreFileKit';
813@Entry
814@Component
815struct Index {
816  @State message: string = 'hello World';
817
818  build() {
819    Row() {
820      Column() {
821        Text(this.message)
822          .fontSize(50)
823          .fontWeight(FontWeight.Bold)
824          .onClick(()=>{
825            let context = getContext(this) as common.Context; // 请确保 getContext(this) 返回结果为 UIAbilityContext
826            let photoPicker = new picker.PhotoViewPicker(context);
827          })
828      }
829      .width('100%')
830    }
831    .height('100%')
832  }
833}
834```
835
836### constructor<sup>12+</sup>
837
838constructor()
839
840**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
841
842**系统能力**:SystemCapability.FileManagement.UserFileService
843
844创建PhotoViewPicker对象,不推荐使用该构造函数,会出现概率性失败问题
845
846**示例:**
847
848```ts
849let photoPicker = new picker.PhotoViewPicker(); // 不推荐使用无参构造,会出现概率性拉起失败问题
850```
851
852### select<sup>(deprecated)</sup>
853
854select(option?: PhotoSelectOptions): Promise&lt;PhotoSelectResult&gt;
855
856通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用Promise异步返回形式,传入可选参数PhotoSelectOptions对象,返回PhotoSelectResult对象。
857
858> **说明:**
859>
860> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewPicker#select](../apis-media-library-kit/js-apis-photoAccessHelper.md#select)替代。
861
862**注意**:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](../apis-media-library-kit/js-apis-photoAccessHelper.md#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。
863
864**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
865
866**系统能力**:SystemCapability.FileManagement.UserFileService
867
868**参数:**
869
870| 参数名  | 类型    | 必填 | 说明                       |
871| ------- | ------- | ---- | -------------------------- |
872| option | [PhotoSelectOptions](#photoselectoptionsdeprecated) | 否   | photoPicker选择选项,若无此参数,则默认选择媒体文件类型为图片和视频类型,选择媒体文件数量的默认最大值为50 |
873
874**返回值:**
875
876| 类型                            | 说明    |
877| ----------------------------- | :---- |
878| Promise&lt;[PhotoSelectResult](#photoselectresultdeprecated)&gt; | Promise对象。返回photoPicker选择后的结果集 |
879
880**示例:**
881
882```ts
883import { BusinessError } from '@kit.BasicServicesKit';
884import { common } from '@kit.AbilityKit';
885import  { picker } from '@kit.CoreFileKit';
886async function example01(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
887  try {
888    let photoSelectOptions = new picker.PhotoSelectOptions();
889    photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
890    photoSelectOptions.maxSelectNumber = 5;
891    let photoPicker = new picker.PhotoViewPicker(context);
892    photoPicker.select(photoSelectOptions).then((photoSelectResult: picker.PhotoSelectResult) => {
893      console.info('PhotoViewPicker.select successfully, photoSelectResult uri: ' + JSON.stringify(photoSelectResult));
894    }).catch((err: BusinessError) => {
895      console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
896    });
897  } catch (error) {
898    let err: BusinessError = error as BusinessError;
899    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
900  }
901}
902```
903
904### select<sup>(deprecated)</sup>
905
906select(option: PhotoSelectOptions, callback: AsyncCallback&lt;PhotoSelectResult&gt;): void
907
908通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,传入参数PhotoSelectOptions对象,返回PhotoSelectResult对象。
909
910> **说明:**
911>
912> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewPicker#select](../apis-media-library-kit/js-apis-photoAccessHelper.md#select-1)替代。
913
914**注意**:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](../apis-media-library-kit/js-apis-photoAccessHelper.md#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。
915
916**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
917
918**系统能力**:SystemCapability.FileManagement.UserFileService
919
920**参数:**
921
922| 参数名  | 类型    | 必填 | 说明                       |
923| ------- | ------- | ---- | -------------------------- |
924| option | [PhotoSelectOptions](#photoselectoptionsdeprecated) | 是   | photoPicker选择选项 |
925| callback | AsyncCallback&lt;[PhotoSelectResult](#photoselectresultdeprecated)&gt;      | 是   | callback 返回photoPicker选择后的结果集 |
926
927**示例:**
928
929```ts
930import { BusinessError } from '@kit.BasicServicesKit';
931import { common } from '@kit.AbilityKit';
932import  { picker } from '@kit.CoreFileKit';
933async function example02(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
934  try {
935    let photoSelectOptions = new picker.PhotoSelectOptions();
936    photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
937    photoSelectOptions.maxSelectNumber = 5;
938    let photoPicker = new picker.PhotoViewPicker(context);
939    photoPicker.select(photoSelectOptions, (err: BusinessError, photoSelectResult: picker.PhotoSelectResult) => {
940      if (err) {
941        console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
942        return;
943      }
944      console.info('PhotoViewPicker.select successfully, photoSelectResult uri: ' + JSON.stringify(photoSelectResult));
945    });
946  } catch (error) {
947    let err: BusinessError = error as BusinessError;
948    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
949  }
950}
951```
952
953### select<sup>(deprecated)</sup>
954
955select(callback: AsyncCallback&lt;PhotoSelectResult&gt;): void
956
957通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,返回PhotoSelectResult对象。
958
959> **说明:**
960>
961> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewPicker#select](../apis-media-library-kit/js-apis-photoAccessHelper.md#select-2)替代。
962
963**注意**:此接口返回的PhotoSelectResult对象中的photoUris只能通过临时授权的方式调用[photoAccessHelper.getAssets接口](../apis-media-library-kit/js-apis-photoAccessHelper.md#getassets)去使用,具体使用方式参见用户文件uri介绍中的[媒体文件uri的使用方式](../../file-management/user-file-uri-intro.md#媒体文件uri的使用方式)。
964
965**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
966
967**系统能力**:SystemCapability.FileManagement.UserFileService
968
969**参数:**
970
971| 参数名  | 类型    | 必填 | 说明                       |
972| ------- | ------- | ---- | -------------------------- |
973| callback | AsyncCallback&lt;[PhotoSelectResult](#photoselectresultdeprecated)&gt;      | 是   | callback 返回photoPicker选择后的结果集 |
974
975**示例:**
976
977```ts
978import { BusinessError } from '@kit.BasicServicesKit';
979import { common } from '@kit.AbilityKit';
980import  { picker } from '@kit.CoreFileKit';
981async function example03(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
982  try {
983    let photoPicker = new picker.PhotoViewPicker(context);
984    photoPicker.select((err: BusinessError, photoSelectResult: picker.PhotoSelectResult) => {
985      if (err) {
986        console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
987        return;
988      }
989      console.info('PhotoViewPicker.select successfully, photoSelectResult uri: ' + JSON.stringify(photoSelectResult));
990    });
991  } catch (error) {
992    let err: BusinessError = error as BusinessError;
993    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
994  }
995}
996```
997
998### save<sup>(deprecated)</sup>
999
1000save(option?: PhotoSaveOptions): Promise&lt;Array&lt;string&gt;&gt;
1001
1002通过保存模式拉起photoPicker界面,用户可以保存一个或多个图片/视频。接口采用Promise异步返回形式,传入可选参数PhotoSaveOptions对象,返回保存文件的uri数组。
1003
1004> **说明:**
1005>
1006> 从 API version 9开始支持,从API version 12开始废弃。建议使用[SaveButton](../apis-arkui/arkui-ts/ts-security-components-savebutton.md#savebutton)替代。
1007
1008**注意**:此接口会将文件保存在文件管理器,而不是图库。返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
1009
1010**系统能力**:SystemCapability.FileManagement.UserFileService
1011
1012**参数:**
1013
1014| 参数名  | 类型    | 必填 | 说明                       |
1015| ------- | ------- | ---- | -------------------------- |
1016| option | [PhotoSaveOptions](#photosaveoptionsdeprecated) | 否   | photoPicker保存图片或视频文件选项,若无此参数,则拉起photoPicker界面后需用户自行输入保存的文件名 |
1017
1018**返回值:**
1019
1020| 类型                            | 说明    |
1021| ----------------------------- | :---- |
1022| Promise&lt;Array&lt;string&gt;&gt; | Promise对象。返回photoPicker保存图片或视频文件后的结果集 |
1023
1024**示例:**
1025
1026```ts
1027import { BusinessError } from '@kit.BasicServicesKit';
1028import { common } from '@kit.AbilityKit';
1029import  { picker } from '@kit.CoreFileKit';
1030async function example04(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
1031  try {
1032    let photoSaveOptions = new picker.PhotoSaveOptions();
1033    photoSaveOptions.newFileNames = ['PhotoViewPicker01.jpg', 'PhotoViewPicker01.mp4'];
1034    let photoPicker = new picker.PhotoViewPicker(context);
1035    photoPicker.save(photoSaveOptions).then((photoSaveResult: Array<string>) => {
1036      console.info('PhotoViewPicker.save successfully, photoSaveResult uri: ' + JSON.stringify(photoSaveResult));
1037    }).catch((err: BusinessError) => {
1038      console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err));
1039    });
1040  } catch (error) {
1041    let err: BusinessError = error as BusinessError;
1042      console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
1043  }
1044}
1045```
1046
1047### save<sup>(deprecated)</sup>
1048
1049save(option: PhotoSaveOptions, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
1050
1051通过保存模式拉起photoPicker界面,用户可以保存一个或多个图片/视频。接口采用callback异步返回形式,传入参数PhotoSaveOptions对象,返回保存文件的uri数组。
1052
1053> **说明:**
1054>
1055> 从 API version 9开始支持,从API version 12开始废弃。建议使用[SaveButton](../apis-arkui/arkui-ts/ts-security-components-savebutton.md#savebutton)替代。
1056
1057**注意**:此接口会将文件保存在文件管理器,而不是图库。返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
1058
1059**系统能力**:SystemCapability.FileManagement.UserFileService
1060
1061**参数:**
1062
1063| 参数名  | 类型    | 必填 | 说明                       |
1064| ------- | ------- | ---- | -------------------------- |
1065| option | [PhotoSaveOptions](#photosaveoptionsdeprecated) | 是   | photoPicker保存图片或视频文件选项 |
1066| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回photoPicker保存图片或视频文件后的结果集 |
1067
1068**示例:**
1069
1070```ts
1071import { BusinessError } from '@kit.BasicServicesKit';
1072import { common } from '@kit.AbilityKit';
1073import  { picker } from '@kit.CoreFileKit';
1074async function example05(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
1075  try {
1076    let photoSaveOptions = new picker.PhotoSaveOptions();
1077    photoSaveOptions.newFileNames = ['PhotoViewPicker02.jpg','PhotoViewPicker02.mp4'];
1078    let photoPicker = new picker.PhotoViewPicker(context);
1079    photoPicker.save(photoSaveOptions, (err: BusinessError, photoSaveResult: Array<string>) => {
1080      if (err) {
1081        console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err));
1082        return;
1083      }
1084      console.info('PhotoViewPicker.save successfully, photoSaveResult uri: ' + JSON.stringify(photoSaveResult));
1085    });
1086  } catch (error) {
1087    let err: BusinessError = error as BusinessError;
1088    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
1089  }
1090}
1091```
1092
1093### save<sup>(deprecated)</sup>
1094
1095save(callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
1096
1097通过保存模式拉起photoPicker界面,用户可以保存一个或多个图片/视频。接口采用callback异步返回形式,返回保存文件的uri数组。
1098
1099> **说明:**
1100>
1101> 从 API version 9开始支持,从API version 12开始废弃。建议使用[SaveButton](../apis-arkui/arkui-ts/ts-security-components-savebutton.md#savebutton)替代。
1102
1103**注意**:此接口会将文件保存在文件管理器,而不是图库。返回的uri数组的具体使用方式参见用户文件uri介绍中的[文档类uri的使用方式](../../file-management/user-file-uri-intro.md#文档类uri的使用方式)。
1104
1105**系统能力**:SystemCapability.FileManagement.UserFileService
1106
1107**参数:**
1108
1109| 参数名  | 类型    | 必填 | 说明                       |
1110| ------- | ------- | ---- | -------------------------- |
1111| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回photoPicker保存图片或视频文件后的结果集 |
1112
1113**示例:**
1114
1115```ts
1116import { BusinessError } from '@kit.BasicServicesKit';
1117import { common } from '@kit.AbilityKit';
1118import  { picker } from '@kit.CoreFileKit';
1119async function example06(context: common.Context) { // 需确保 context 由 UIAbilityContext 转换而来
1120  try {
1121    let photoPicker = new picker.PhotoViewPicker(context);
1122    photoPicker.save((err: BusinessError, photoSaveResult: Array<string>) => {
1123      if (err) {
1124        console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err));
1125        return;
1126      }
1127      console.info('PhotoViewPicker.save successfully, photoSaveResult uri: ' + JSON.stringify(photoSaveResult));
1128    });
1129  } catch (error) {
1130    let err: BusinessError = error as BusinessError;
1131    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
1132  }
1133}
1134```
1135
1136## PhotoViewMIMETypes<sup>(deprecated)</sup>
1137
1138枚举,可选择的媒体文件类型。
1139
1140> **说明:**
1141>
1142> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoViewMIMETypes](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoviewmimetypes)替代。
1143
1144**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1145
1146**系统能力:** SystemCapability.FileManagement.UserFileService
1147
1148| 名称  |  值 |  说明 |
1149| ----- |  ---- | ---- |
1150| IMAGE_TYPE  |  'image/*' | 图片类型  |
1151| VIDEO_TYPE |  'video/*' | 视频类型  |
1152| IMAGE_VIDEO_TYPE |  '\*/*' | 图片和视频类型  |
1153
1154## PhotoSelectOptions<sup>(deprecated)</sup>
1155
1156图库选择选项。
1157
1158> **说明:**
1159>
1160> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoSelectOptions](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoselectoptions)替代。
1161
1162**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1163
1164**系统能力:** SystemCapability.FileManagement.UserFileService
1165
1166| 名称                    | 类型                | 必填 | 说明                          |
1167| ----------------------- | ------------------- | ---- | -------------------------------- |
1168| MIMEType              | [PhotoViewMIMETypes](#photoviewmimetypesdeprecated)   | 否   | 可选择的媒体文件类型,若无此参数,则默认为图片和视频类型  |
1169| maxSelectNumber       | number | 否   | 选择媒体文件数量的最大值(默认值为50,最大值为500)      |
1170
1171## PhotoSelectResult<sup>(deprecated)</sup>
1172
1173返回图库选择后的结果集。
1174
1175> **说明:**
1176>
1177> 从 API version 9开始支持,从API version 12开始废弃。建议使用[photoAccessHelper.PhotoSelectResult](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoselectresult)替代。
1178
1179**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
1180
1181**系统能力:** SystemCapability.FileManagement.UserFileService
1182
1183| 名称                    | 类型                | 必填 | 说明                           |
1184| ----------------------- | ------------------- | ----| ------------------------------ |
1185| 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的使用方式)。  |
1186| isOriginalPhoto        | boolean    | 是   | 返回图库选择后的媒体文件是否为原图。true为原图,false不是原图。  |
1187
1188## PhotoSaveOptions<sup>(deprecated)</sup>
1189
1190图片或视频的保存选项。
1191
1192> **说明:**
1193>
1194> 从 API version 9开始支持,从API version 12开始废弃。无替代接口和替代方法。
1195
1196**系统能力:** SystemCapability.FileManagement.UserFileService
1197
1198| 名称                    | 类型                | 必填 |  说明                           |
1199| ----------------------- | ------------------- | ---- | ---------------------------- |
1200| newFileNames              | Array&lt;string&gt;    | 否  | 拉起photoPicker进行保存图片或视频资源的文件名,若无此参数,则默认需要用户自行输入 |