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