js-apis-file-picker.md 31.4 KB
Newer Older
H
huweiqi 已提交
1 2 3
# @ohos.file.picker (选择器)

> **说明:**
Z
zengyawen 已提交
4 5
>
> 该模块接口从API version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
H
huweiqi 已提交
6 7 8 9

选择器(Picker)是一个封装PhotoViewPicker、DocumentViewPicker、AudioViewPicker等系统应用选择与保存能力的模块。应用可以自行选择使用哪种picker实现文件选择和文件保存的功能。

## 导入模块
Z
zengyawen 已提交
10

Y
yxn 已提交
11 12 13 14
> **说明:**
>
> 示例代码里有使用BusinessError的都需要导入BusinessError模块,没有的话则不需要导入。

15
```ts
H
huweiqi 已提交
16
import picker from '@ohos.file.picker';
Y
yxn 已提交
17
import { BusinessError } from '@ohos.base';
H
huweiqi 已提交
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
```

## PhotoViewPicker

图库选择器对象,用来支撑选择图片/视频和保存图片/视频等用户场景。在使用前,需要先创建PhotoViewPicker实例。

**系统能力**:SystemCapability.FileManagement.UserFileService

**示例:**

```ts
let photoPicker = new picker.PhotoViewPicker();
```

### select

select(option?: PhotoSelectOptions) : Promise<PhotoSelectResult>

通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用promise异步返回形式,传入可选参数PhotoSelectOptions对象,返回PhotoSelectResult对象。

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
40
**参数:**
H
huweiqi 已提交
41 42 43

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
44
| option | [PhotoSelectOptions](#photoselectoptions) | 否   | photoPicker选择选项,若无此参数,则默认选择媒体文件类型为图片和视频类型,选择媒体文件数量的最大值为50 |
H
huweiqi 已提交
45 46 47 48 49

**返回值:**

| 类型                            | 说明    |
| ----------------------------- | :---- |
H
huweiqi 已提交
50
| Promise<[PhotoSelectResult](#photoselectresult)> | Promise对象。返回photoPicker选择后的结果集 |
H
huweiqi 已提交
51 52 53 54

**示例:**

```ts
55
async function example01() {
H
huweiqi 已提交
56 57 58 59 60
  try {  
    let PhotoSelectOptions = new picker.PhotoSelectOptions();
    PhotoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
    PhotoSelectOptions.maxSelectNumber = 5;
    let photoPicker = new picker.PhotoViewPicker();
61
    photoPicker.select(PhotoSelectOptions).then((PhotoSelectResult: picker.PhotoSelectResult) => {
H
huweiqi 已提交
62
      console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult));
63
    }).catch((err: BusinessError) => {
64
      console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
65
    });
66 67
  } catch (error) {
    let err: BusinessError = error as BusinessError;
68
    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
69 70 71 72 73 74 75 76 77 78 79 80
  }
}
```

### select

select(option: PhotoSelectOptions, callback: AsyncCallback<PhotoSelectResult>) : void

通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,传入参数PhotoSelectOptions对象,返回PhotoSelectResult对象。

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
81
**参数:**
H
huweiqi 已提交
82 83 84 85 86 87 88 89 90

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
| option | [PhotoSelectOptions](#photoselectoptions) | 是   | photoPicker选择选项 |
| callback | AsyncCallback<[PhotoSelectResult](#photoselectresult)>      | 是   | callback 返回photoPicker选择后的结果集 |

**示例:**

```ts
91
async function example02() {
92
  try {
H
huweiqi 已提交
93 94 95 96
    let PhotoSelectOptions = new picker.PhotoSelectOptions();
    PhotoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
    PhotoSelectOptions.maxSelectNumber = 5;
    let photoPicker = new picker.PhotoViewPicker();
97
    photoPicker.select(PhotoSelectOptions, (err: BusinessError, PhotoSelectResult: picker.PhotoSelectResult) => {
H
huweiqi 已提交
98
      if (err) {
99
        console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
100 101 102 103
        return;
      }
      console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult));
    });
104 105 106
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
107 108 109 110 111 112 113 114 115 116 117 118
  }
}
```

### select

select(callback: AsyncCallback<PhotoSelectResult>) : void

通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,返回PhotoSelectResult对象。

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
119
**参数:**
H
huweiqi 已提交
120 121 122 123 124 125 126 127

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
| callback | AsyncCallback<[PhotoSelectResult](#photoselectresult)>      | 是   | callback 返回photoPicker选择后的结果集 |

**示例:**

```ts
128
async function example03() {
129
  try {
H
huweiqi 已提交
130
    let photoPicker = new picker.PhotoViewPicker();
131
    photoPicker.select((err: BusinessError, PhotoSelectResult: picker.PhotoSelectResult) => {
H
huweiqi 已提交
132
      if (err) {
133
        console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
134 135 136 137
        return;
      }
      console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult));
    });
138 139 140
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
141 142 143 144 145 146 147 148
  }
}
```

### save

save(option?: PhotoSaveOptions) : Promise<Array<string>>

Y
yxn 已提交
149
通过保存模式拉起photoPicker界面,用户可以保存一个或多个图片/视频。接口采用promise异步返回形式,传入可选参数PhotoSaveOptions对象,返回保存文件的uri数组。save接口会将文件保存在文件管理器,而不是图库。
H
huweiqi 已提交
150 151 152

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
153
**参数:**
H
huweiqi 已提交
154 155 156

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
157
| option | [PhotoSaveOptions](#photosaveoptions) | 否   | photoPicker保存图片或视频文件选项,若无此参数,则拉起photoPicker界面后需用户自行输入保存的文件名 |
H
huweiqi 已提交
158 159 160 161 162

**返回值:**

| 类型                            | 说明    |
| ----------------------------- | :---- |
H
huweiqi 已提交
163
| Promise<Array<string>> | Promise对象。返回photoPicker保存图片或视频文件后的结果集 |
H
huweiqi 已提交
164 165 166 167

**示例:**

```ts
168
async function example04() {
169
  try {
H
huweiqi 已提交
170 171 172
    let PhotoSaveOptions = new picker.PhotoSaveOptions();
    PhotoSaveOptions.newFileNames = ['PhotoViewPicker01.jpg', 'PhotoViewPicker01.mp4'];
    let photoPicker = new picker.PhotoViewPicker();
173
    photoPicker.save(PhotoSaveOptions).then((PhotoSaveResult: Array<string>) => {
H
huweiqi 已提交
174
      console.info('PhotoViewPicker.save successfully, PhotoSaveResult uri: ' + JSON.stringify(PhotoSaveResult));
175
    }).catch((err: BusinessError) => {
176
      console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
177
    });
178 179 180
  } catch (error) {
    let err: BusinessError = error as BusinessError;
      console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
181 182 183 184 185 186 187 188
  }
}
```

### save

save(option: PhotoSaveOptions, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;) : void

Y
yxn 已提交
189
通过保存模式拉起photoPicker界面,用户可以保存一个或多个图片/视频。接口采用callback异步返回形式,传入参数PhotoSaveOptions对象,返回保存文件的uri数组。save接口会将文件保存在文件管理器,而不是图库。
H
huweiqi 已提交
190 191 192

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
193
**参数:**
H
huweiqi 已提交
194 195 196 197 198 199 200 201 202

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
| option | [PhotoSaveOptions](#photosaveoptions) | 是   | photoPicker保存图片或视频文件选项 |
| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回photoPicker保存图片或视频文件后的结果集 |

**示例:**

```ts
203
async function example05() {
H
huweiqi 已提交
204 205 206 207
  try {
    let PhotoSaveOptions = new picker.PhotoSaveOptions();
    PhotoSaveOptions.newFileNames = ['PhotoViewPicker02.jpg','PhotoViewPicker02.mp4'];
    let photoPicker = new picker.PhotoViewPicker();
208
    photoPicker.save(PhotoSaveOptions, (err: BusinessError, PhotoSaveResult: Array<string>) => {
H
huweiqi 已提交
209
      if (err) {
210
        console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
211 212 213 214
        return;
      }
      console.info('PhotoViewPicker.save successfully, PhotoSaveResult uri: ' + JSON.stringify(PhotoSaveResult));
    });
215 216 217
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
218 219 220 221 222 223 224 225
  }
}
```

### save

save(callback: AsyncCallback&lt;Array&lt;string&gt;&gt;) : void

Y
yxn 已提交
226
通过保存模式拉起photoPicker界面,用户可以保存一个或多个图片/视频。接口采用callback异步返回形式,返回保存文件的uri数组。save接口会将文件保存在文件管理器,而不是图库。
H
huweiqi 已提交
227 228 229

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
230
**参数:**
H
huweiqi 已提交
231 232 233 234 235 236 237 238

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回photoPicker保存图片或视频文件后的结果集 |

**示例:**

```ts
239
async function example06() {
H
huweiqi 已提交
240 241
  try {
    let photoPicker = new picker.PhotoViewPicker();
242
    photoPicker.save((err: BusinessError, PhotoSaveResult: Array<string>) => {
H
huweiqi 已提交
243
      if (err) {
244
        console.error('PhotoViewPicker.save failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
245 246 247 248
        return;
      }
      console.info('PhotoViewPicker.save successfully, PhotoSaveResult uri: ' + JSON.stringify(PhotoSaveResult));
    });
249 250 251
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
252 253 254 255 256 257
  }
}
```

## DocumentViewPicker

258
文件选择器对象,用来支撑选择和保存各种格式文档。在使用前,需要先创建DocumentViewPicker实例。
H
huweiqi 已提交
259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275

**系统能力**:SystemCapability.FileManagement.UserFileService

**示例:**

```ts
let documentPicker = new picker.DocumentViewPicker();
```

### select

select(option?: DocumentSelectOptions) : Promise&lt;Array&lt;string&gt;&gt;

通过选择模式拉起documentPicker界面,用户可以选择一个或多个文件。接口采用promise异步返回形式,传入可选参数DocumentSelectOptions对象,返回选择文件的uri数组。

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
276
**参数:**
H
huweiqi 已提交
277 278 279

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
280
| option | [DocumentSelectOptions](#documentselectoptions) | 否   | documentPicker选择选项,若无此参数,则默认拉起documentPicker主界面 |
H
huweiqi 已提交
281 282 283 284 285

**返回值:**

| 类型                            | 说明    |
| ----------------------------- | :---- |
H
huweiqi 已提交
286
| Promise&lt;Array&lt;string&gt;&gt; | Promise对象。返回documentPicker选择后的结果集 |
H
huweiqi 已提交
287 288 289 290

**示例:**

```ts
291
async function example07() {
H
huweiqi 已提交
292 293 294
  try {
    let DocumentSelectOptions = new picker.DocumentSelectOptions();
    let documentPicker = new picker.DocumentViewPicker();
295
    documentPicker.select(DocumentSelectOptions).then((DocumentSelectResult: Array<string>) => {
H
huweiqi 已提交
296
      console.info('DocumentViewPicker.select successfully, DocumentSelectResult uri: ' + JSON.stringify(DocumentSelectResult));
297
    }).catch((err: BusinessError) => {
298
      console.error('DocumentViewPicker.select failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
299
    });
300 301 302
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
303 304 305 306 307 308 309 310 311 312 313 314
  }
}
```

### select

select(option: DocumentSelectOptions, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;) : void

通过选择模式拉起documentPicker界面,用户可以选择一个或多个文件。接口采用callback异步返回形式,传入参数DocumentSelectOptions对象,返回选择文件的uri数组。

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
315
**参数:**
H
huweiqi 已提交
316 317 318 319 320 321 322 323 324

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
| option | [DocumentSelectOptions](#documentselectoptions) | 是   | documentPicker选择选项 |
| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回documentPicker选择后的结果集 |

**示例:**

```ts
325
async function example08() {
H
huweiqi 已提交
326 327 328
  try {
    let DocumentSelectOptions = new picker.DocumentSelectOptions();
    let documentPicker = new picker.DocumentViewPicker();
329
    documentPicker.select(DocumentSelectOptions, (err: BusinessError, DocumentSelectResult: Array<string>) => {
H
huweiqi 已提交
330
      if (err) {
331
        console.error('DocumentViewPicker.select failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
332 333 334 335
        return;
      }
      console.info('DocumentViewPicker.select successfully, DocumentSelectResult uri: ' + JSON.stringify(DocumentSelectResult));
    });
336 337 338
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
339 340 341 342 343 344 345 346 347 348 349 350
  }
}
```

### select

select(callback: AsyncCallback&lt;Array&lt;string&gt;&gt;) : void

通过选择模式拉起documentPicker界面,用户可以选择一个或多个文件。接口采用callback异步返回形式,返回选择文件的uri数组。

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
351
**参数:**
H
huweiqi 已提交
352 353 354 355 356 357 358 359

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回documentPicker选择后的结果集 |

**示例:**

```ts
360
async function example09() {
H
huweiqi 已提交
361 362
  try {
    let documentPicker = new picker.DocumentViewPicker();
363
    documentPicker.select((err: BusinessError, DocumentSelectResult: Array<string>) => {
H
huweiqi 已提交
364
      if (err) {
365
        console.error('DocumentViewPicker.select failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
366 367 368 369
        return;
      }
      console.info('DocumentViewPicker.select successfully, DocumentSelectResult uri: ' + JSON.stringify(DocumentSelectResult));
    });
370 371 372
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
373 374 375 376 377 378 379 380 381 382 383 384 385
  }
}
```


### save

save(option?: DocumentSaveOptions) : Promise&lt;Array&lt;string&gt;&gt;

通过保存模式拉起documentPicker界面,用户可以保存一个或多个文件。接口采用promise异步返回形式,传入可选参数DocumentSaveOptions对象,返回保存文件的uri数组。

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
386
**参数:**
H
huweiqi 已提交
387 388 389

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
390
| option | [DocumentSaveOptions](#documentsaveoptions) | 否   | documentPicker保存选项,若无此参数,则拉起documentPicker界面后需用户自行输入保存的文件名 |
H
huweiqi 已提交
391 392 393 394 395

**返回值:**

| 类型                            | 说明    |
| ----------------------------- | :---- |
H
huweiqi 已提交
396
| Promise&lt;Array&lt;string&gt;&gt; | Promise对象。返回documentPicker保存后的结果集 |
H
huweiqi 已提交
397 398 399 400

**示例:**

```ts
401
async function example10() {
H
huweiqi 已提交
402 403 404 405
  try {
    let DocumentSaveOptions = new picker.DocumentSaveOptions();
    DocumentSaveOptions.newFileNames = ['DocumentViewPicker01.txt'];
    let documentPicker = new picker.DocumentViewPicker();
406
    documentPicker.save(DocumentSaveOptions).then((DocumentSaveResult: Array<string>) => {
H
huweiqi 已提交
407
      console.info('DocumentViewPicker.save successfully, DocumentSaveResult uri: ' + JSON.stringify(DocumentSaveResult));
408
    }).catch((err: BusinessError) => {
409
      console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
410
    });
411 412 413
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
414 415 416 417 418 419 420 421 422 423 424 425
  }
}
```

### save

save(option: DocumentSaveOptions, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;) : void

通过保存模式拉起documentPicker界面,用户可以保存一个或多个文件。接口采用callback异步返回形式,传入参数DocumentSaveOptions对象,返回保存文件的uri数组。

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
426
**参数:**
H
huweiqi 已提交
427 428 429 430 431 432 433 434 435

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
| option | [DocumentSaveOptions](#documentsaveoptions) | 是   | documentPicker保存选项 |
| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回documentPicker保存后的结果集 |

**示例:**

```ts
436
async function example11() {
H
huweiqi 已提交
437 438 439 440
  try {
    let DocumentSaveOptions = new picker.DocumentSaveOptions();
    DocumentSaveOptions.newFileNames = ['DocumentViewPicker02.txt'];
    let documentPicker = new picker.DocumentViewPicker();
441
    documentPicker.save(DocumentSaveOptions, (err: BusinessError, DocumentSaveResult: Array<string>) => {
H
huweiqi 已提交
442
      if (err) {
443
        console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
444 445 446 447
        return;
      }
      console.info('DocumentViewPicker.save successfully, DocumentSaveResult uri: ' + JSON.stringify(DocumentSaveResult));
    });
448 449 450
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
451 452 453 454 455 456 457 458 459 460 461 462
  }
}
```

### save

save(callback: AsyncCallback&lt;Array&lt;string&gt;&gt;) : void

通过保存模式拉起documentPicker界面,用户可以保存一个或多个文件。接口采用callback异步返回形式,返回保存文件的uri数组。

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
463
**参数:**
H
huweiqi 已提交
464 465 466 467 468 469 470 471

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回documentPicker保存后的结果集 |

**示例:**

```ts
472
async function example12() {
H
huweiqi 已提交
473 474
  try {
    let documentPicker = new picker.DocumentViewPicker();
475
    documentPicker.save((err: BusinessError, DocumentSaveResult: Array<string>) => {
H
huweiqi 已提交
476
      if (err) {
477
        console.error('DocumentViewPicker.save failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
478 479 480 481
        return;
      }
      console.info('DocumentViewPicker.save successfully, DocumentSaveResult uri: ' + JSON.stringify(DocumentSaveResult));
    });
482 483 484
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('DocumentViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508
  }
}
```

## AudioViewPicker

音频选择器对象,用来支撑选择和保存音频类文件等用户场景。在使用前,需要先创建AudioViewPicker实例。

**系统能力**:SystemCapability.FileManagement.UserFileService

**示例:**

```ts
let audioPicker = new picker.AudioViewPicker();
```

### select

select(option?: AudioSelectOptions) : Promise&lt;Array&lt;string&gt;&gt;

通过选择模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以选择一个或多个音频文件。接口采用promise异步返回形式,传入可选参数AudioSelectOptions对象,返回选择音频文件的uri数组。

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
509
**参数:**
H
huweiqi 已提交
510 511 512

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
513
| option | [AudioSelectOptions](#audioselectoptions) | 否   | audioPicker音频选择选项,若无此参数,则默认拉起audioPicker主界面  |
H
huweiqi 已提交
514 515 516 517 518

**返回值:**

| 类型                            | 说明    |
| ----------------------------- | :---- |
H
huweiqi 已提交
519
| Promise&lt;Array&lt;string&gt;&gt; | Promise对象。返回audioPicker选择音频后的结果集 |
H
huweiqi 已提交
520 521 522 523

**示例:**

```ts
524
async function example13() {
H
huweiqi 已提交
525 526 527
  try {
    let AudioSelectOptions = new picker.AudioSelectOptions();
    let audioPicker = new picker.AudioViewPicker();
528
    audioPicker.select(AudioSelectOptions).then((AudioSelectResult: Array<string>) => {
H
huweiqi 已提交
529
      console.info('AudioViewPicker.select successfully, AudioSelectResult uri: ' + JSON.stringify(AudioSelectResult));
530
    }).catch((err: BusinessError) => {
531
      console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
532
    });
533 534 535
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
536 537 538 539 540 541 542 543 544 545 546 547
  }
}
```

### select

select(option: AudioSelectOptions, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;) : void

通过选择模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以选择一个或多个音频文件。接口采用callback异步返回形式,传入参数AudioSelectOptions对象,返回选择音频文件的uri数组。

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
548
**参数:**
H
huweiqi 已提交
549 550 551 552 553 554 555 556 557

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
| option | [AudioSelectOptions](#audioselectoptions) | 是   | audioPicker音频选择选项 |
| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回audioPicker选择音频后的结果集 |

**示例:**

```ts
558
async function example14() {
H
huweiqi 已提交
559 560 561
  try {
    let AudioSelectOptions = new picker.AudioSelectOptions();
    let audioPicker = new picker.AudioViewPicker();
562
    audioPicker.select(AudioSelectOptions, (err: BusinessError, AudioSelectResult: Array<string>) => {
H
huweiqi 已提交
563
      if (err) {
564
        console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
565 566 567 568
        return;
      }
      console.info('AudioViewPicker.select successfully, AudioSelectResult uri: ' + JSON.stringify(AudioSelectResult));
    });
569 570 571
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
572 573 574 575 576 577 578 579 580 581 582 583
  }
}
```

### select

select(callback: AsyncCallback&lt;Array&lt;string&gt;&gt;) : void

通过选择模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以选择一个或多个音频文件。接口采用callback异步返回形式,返回选择音频文件的uri数组。

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
584
**参数:**
H
huweiqi 已提交
585 586 587 588 589 590 591 592

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回audioPicker选择音频后的结果集 |

**示例:**

```ts
593
async function example15() {
H
huweiqi 已提交
594 595
  try {
    let audioPicker = new picker.AudioViewPicker();
596
    audioPicker.select((err: BusinessError, AudioSelectResult: Array<string>) => {
H
huweiqi 已提交
597
      if (err) {
598
        console.error('AudioViewPicker.select failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
599 600 601 602
        return;
      }
      console.info('AudioViewPicker.select successfully, AudioSelectResult uri: ' + JSON.stringify(AudioSelectResult));
    });
603 604 605
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
606 607 608 609 610 611 612 613 614 615 616 617
  }
}
```

### save

save(option?: AudioSaveOptions) : Promise&lt;Array&lt;string&gt;&gt;

通过保存模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以保存一个或多个音频文件。接口采用promise异步返回形式,传入可选参数AudioSaveOptions对象,返回保存音频文件的uri数组。

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
618
**参数:**
H
huweiqi 已提交
619 620 621

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
622
| option | [AudioSaveOptions](#audiosaveoptions) | 否   | audioPicker保存音频文件选项,若无此参数,则拉起audioPicker界面后需用户自行输入保存的文件名 |
H
huweiqi 已提交
623 624 625 626 627

**返回值:**

| 类型                            | 说明    |
| ----------------------------- | ---- |
H
huweiqi 已提交
628
| Promise&lt;Array&lt;string&gt;&gt; | Promise对象。返回audioPicker保存音频文件后的结果集 |
H
huweiqi 已提交
629 630 631 632

**示例:**

```ts
633
async function example16() {
H
huweiqi 已提交
634 635 636 637
  try {
    let AudioSaveOptions = new picker.AudioSaveOptions();
    AudioSaveOptions.newFileNames = ['AudioViewPicker01.mp3'];
    let audioPicker = new picker.AudioViewPicker();
638
    audioPicker.save(AudioSaveOptions).then((AudioSaveResult: Array<string>) => {
H
huweiqi 已提交
639
      console.info('AudioViewPicker.save successfully, AudioSaveResult uri: ' + JSON.stringify(AudioSaveResult))
640
    }).catch((err: BusinessError) => {
641
      console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
642
    });
643 644 645
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
646 647 648 649 650 651 652 653 654 655 656 657
  }
}
```

### save

save(option: AudioSaveOptions, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;) : void

通过保存模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以保存一个或多个音频文件。接口采用callback异步返回形式,传入参数AudioSaveOptions对象,返回保存音频文件的uri数组。

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
658
**参数:**
H
huweiqi 已提交
659 660 661 662 663 664 665 666 667

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
| option | [AudioSaveOptions](#audiosaveoptions) | 是   | audioPicker保存音频文件选项 |
| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回audioPicker保存音频文件后的结果集 |

**示例:**

```ts
668
async function example17() {
H
huweiqi 已提交
669 670 671 672
  try {
    let AudioSaveOptions = new picker.AudioSaveOptions();
    AudioSaveOptions.newFileNames = ['AudioViewPicker02.mp3'];
    let audioPicker = new picker.AudioViewPicker();
673
    audioPicker.save(AudioSaveOptions, (err: BusinessError, AudioSaveResult: Array<string>) => {
H
huweiqi 已提交
674
      if (err) {
675
        console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
676 677 678 679
        return;
      }
      console.info('AudioViewPicker.save successfully, AudioSaveResult uri: ' + JSON.stringify(AudioSaveResult));
    });
680 681 682
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
683 684 685 686 687 688 689 690 691 692 693 694
  }
}
```

### save

save(callback: AsyncCallback&lt;Array&lt;string&gt;&gt;) : void

通过保存模式拉起audioPicker界面(目前拉起的是documentPicker,audioPicker在规划中),用户可以保存一个或多个音频文件。接口采用callback异步返回形式,返回保存音频文件的uri数组。

**系统能力**:SystemCapability.FileManagement.UserFileService

Z
zengyawen 已提交
695
**参数:**
H
huweiqi 已提交
696 697 698 699 700 701 702 703

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
| callback | AsyncCallback&lt;Array&lt;string&gt;&gt;      | 是   | callback 返回audioPicker保存音频文件后的结果集 |

**示例:**

```ts
704
async function example18() {
H
huweiqi 已提交
705 706
  try {
    let audioPicker = new picker.AudioViewPicker();
707
    audioPicker.save((err: BusinessError, AudioSaveResult: Array<string>) => {
H
huweiqi 已提交
708
      if (err) {
709
        console.error('AudioViewPicker.save failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
710 711 712 713
        return;
      }
      console.info('AudioViewPicker.save successfully, AudioSaveResult uri: ' + JSON.stringify(AudioSaveResult));
    });
714 715 716
  } catch (error) {
    let err: BusinessError = error as BusinessError;
    console.error('AudioViewPicker failed with err: ' + JSON.stringify(err));
H
huweiqi 已提交
717 718 719 720 721 722 723 724
  }
}
```

## PhotoViewMIMETypes

枚举,可选择的媒体文件类型。

725
**系统能力:** SystemCapability.FileManagement.UserFileService
H
huweiqi 已提交
726 727 728 729 730 731 732 733 734 735 736

| 名称  |  值 |  说明 |
| ----- |  ---- | ---- |
| IMAGE_TYPE  |  'image/*' | 图片类型 |
| VIDEO_TYPE |  'video/*' | 视频类型 |
| IMAGE_VIDEO_TYPE |  '\*/*' | 图片和视频类型 |

## PhotoSelectOptions

图库选择选项。

737
**系统能力:** SystemCapability.FileManagement.UserFileService
H
huweiqi 已提交
738 739 740

| 名称                    | 类型                | 必填 | 说明                          |
| ----------------------- | ------------------- | ---- | -------------------------------- |
741 742
| MIMEType              | [PhotoViewMIMETypes](#photoviewmimetypes)   | 否   | 可选择的媒体文件类型,若无此参数,则默认为图片和视频类型 |
| maxSelectNumber       | number | 否   | 选择媒体文件数量的最大值(默认值为50,最大值为500)      |
H
huweiqi 已提交
743 744 745 746 747

## PhotoSelectResult

返回图库选择后的结果集。

748
**系统能力:** SystemCapability.FileManagement.UserFileService
H
huweiqi 已提交
749 750 751 752 753 754 755 756 757 758

| 名称                    | 类型                | 可读 | 可写 | 说明                           |
| ----------------------- | ------------------- | ---- | ---- | ------------------------------ |
| photoUris        | Array&lt;string&gt;    | 是   | 是   | 返回图库选择后的媒体文件的uri数组 |
| isOriginalPhoto        | boolean    | 是   | 是   | 返回图库选择后的媒体文件是否为原图 | 

## PhotoSaveOptions

图片或视频的保存选项。

759
**系统能力:** SystemCapability.FileManagement.UserFileService
H
huweiqi 已提交
760 761 762

| 名称                    | 类型                | 必填 |  说明                           |
| ----------------------- | ------------------- | ---- | ---------------------------- |
763
| newFileNames              | Array&lt;string&gt;    | 否  | 拉起photoPicker进行保存图片或视频资源的文件名,若无此参数,则默认需要用户自行输入 |
H
huweiqi 已提交
764 765 766

## DocumentSelectOptions

767
文档选择选项。
H
huweiqi 已提交
768 769 770

**系统能力:** SystemCapability.FileManagement.UserFileService

771 772
| 名称                    | 类型                | 必填 | 说明                          |
| ----------------------- | ------------------- | ---- | -------------------------------- |
Y
yxn 已提交
773 774 775
| maxSelectNumber<sup>10+</sup>       | number  | 否   | 选择文件/目录最大个数,上限500,有效值范围1-500      |
| defaultFilePathUri<sup>10+</sup>    | string  | 否   | 指定选择的文件或者目录路径 |
| fileSuffixFilters<sup>10+</sup>     | Array&lt;string&gt; | 否   | 选择文件的后缀类型 |
776

H
huweiqi 已提交
777 778 779 780
## DocumentSaveOptions

文档保存选项。

781
**系统能力:** SystemCapability.FileManagement.UserFileService
H
huweiqi 已提交
782 783 784

| 名称                    | 类型                | 必填 |  说明                           |
| ----------------------- | ------------------- | ---- | ---------------------------- |
785
| newFileNames            | Array&lt;string&gt;    | 否   | 拉起documentPicker进行保存的文件名,若无此参数,则默认需要用户自行输入 |
Y
yxn 已提交
786 787
| defaultFilePathUri<sup>10+</sup>    | string  | 否   | 指定保存的文件或者目录路径 |
| fileSuffixChoices<sup>10+</sup>     | Array&lt;string&gt; | 否   | 保存文件的后缀类型 |
H
huweiqi 已提交
788 789 790 791 792 793 794 795 796 797 798

## AudioSelectOptions

音频选择选项,目前不支持参数配置。

**系统能力:** SystemCapability.FileManagement.UserFileService

## AudioSaveOptions

音频的保存选项。

799
**系统能力:** SystemCapability.FileManagement.UserFileService
H
huweiqi 已提交
800 801 802

| 名称                    | 类型                | 必填 |  说明                           |
| ----------------------- | ------------------- | ---- | ---------------------------- |
803
| newFileNames              | Array&lt;string&gt;    | 否  | 拉起audioPicker进行保存音频资源的文件名,若无此参数,则默认需要用户自行输入 |