js-apis-file-picker.md 29.7 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 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) => {
H
huweiqi 已提交
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
      console.error('PhotoViewPicker.select failed with err: ' + err);
    });
  } catch (err) {
    console.error('PhotoViewPicker failed with err: ' + err);
  }
}
```

### select

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

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

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

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

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

**示例:**

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

### select

select(callback: AsyncCallback<PhotoSelectResult>) : void

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

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

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

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

**示例:**

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

### save

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

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

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

Z
zengyawen 已提交
150
**参数:**
H
huweiqi 已提交
151 152 153

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

**返回值:**

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

**示例:**

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

### save

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

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

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

Z
zengyawen 已提交
189
**参数:**
H
huweiqi 已提交
190 191 192 193 194 195 196 197 198

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

**示例:**

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

### save

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

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

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

Z
zengyawen 已提交
225
**参数:**
H
huweiqi 已提交
226 227 228 229 230 231 232 233

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

**示例:**

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

## DocumentViewPicker

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

**系统能力**: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 已提交
270
**参数:**
H
huweiqi 已提交
271 272 273

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
274
| option | [DocumentSelectOptions](#documentselectoptions) | 否   | documentPicker选择选项,若无此参数,则默认拉起documentPicker主界面 |
H
huweiqi 已提交
275 276 277 278 279

**返回值:**

| 类型                            | 说明    |
| ----------------------------- | :---- |
H
huweiqi 已提交
280
| Promise&lt;Array&lt;string&gt;&gt; | Promise对象。返回documentPicker选择后的结果集 |
H
huweiqi 已提交
281 282 283 284

**示例:**

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

### select

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

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

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

Z
zengyawen 已提交
308
**参数:**
H
huweiqi 已提交
309 310 311 312 313 314 315 316 317

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

**示例:**

```ts
318
async example08() {
H
huweiqi 已提交
319 320 321
  try {
    let DocumentSelectOptions = new picker.DocumentSelectOptions();
    let documentPicker = new picker.DocumentViewPicker();
322
    documentPicker.select(DocumentSelectOptions, (err: BusinessError, DocumentSelectResult: Array<string>) => {
H
huweiqi 已提交
323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342
      if (err) {
        console.error('DocumentViewPicker.select failed with err: ' + err);
        return;
      }
      console.info('DocumentViewPicker.select successfully, DocumentSelectResult uri: ' + JSON.stringify(DocumentSelectResult));
    });
  } catch (err) {
    console.error('DocumentViewPicker failed with err: ' + err);
  }
}
```

### select

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

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

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

Z
zengyawen 已提交
343
**参数:**
H
huweiqi 已提交
344 345 346 347 348 349 350 351

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

**示例:**

```ts
352
async example09() {
H
huweiqi 已提交
353 354
  try {
    let documentPicker = new picker.DocumentViewPicker();
355
    documentPicker.select((err: BusinessError, DocumentSelectResult: Array<string>) => {
H
huweiqi 已提交
356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376
      if (err) {
        console.error('DocumentViewPicker.select failed with err: ' + err);
        return;
      }
      console.info('DocumentViewPicker.select successfully, DocumentSelectResult uri: ' + JSON.stringify(DocumentSelectResult));
    });
  } catch (err) {
    console.error('DocumentViewPicker failed with err: ' + err);
  }
}
```


### save

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

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

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

Z
zengyawen 已提交
377
**参数:**
H
huweiqi 已提交
378 379 380

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

**返回值:**

| 类型                            | 说明    |
| ----------------------------- | :---- |
H
huweiqi 已提交
387
| Promise&lt;Array&lt;string&gt;&gt; | Promise对象。返回documentPicker保存后的结果集 |
H
huweiqi 已提交
388 389 390 391

**示例:**

```ts
392
async example10() {
H
huweiqi 已提交
393 394 395 396
  try {
    let DocumentSaveOptions = new picker.DocumentSaveOptions();
    DocumentSaveOptions.newFileNames = ['DocumentViewPicker01.txt'];
    let documentPicker = new picker.DocumentViewPicker();
397
    documentPicker.save(DocumentSaveOptions).then((DocumentSaveResult: Array<string>) => {
H
huweiqi 已提交
398
      console.info('DocumentViewPicker.save successfully, DocumentSaveResult uri: ' + JSON.stringify(DocumentSaveResult));
399
    }).catch((err: BusinessError) => {
H
huweiqi 已提交
400 401 402
      console.error('DocumentViewPicker.save failed with err: ' + err);
    });
  } catch (err) {
H
huweiqi 已提交
403
    console.error('DocumentViewPicker failed with err: ' + err);
H
huweiqi 已提交
404 405 406 407 408 409 410 411 412 413 414 415
  }
}
```

### save

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

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

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

Z
zengyawen 已提交
416
**参数:**
H
huweiqi 已提交
417 418 419 420 421 422 423 424 425

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

**示例:**

```ts
426
async example11() {
H
huweiqi 已提交
427 428 429 430
  try {
    let DocumentSaveOptions = new picker.DocumentSaveOptions();
    DocumentSaveOptions.newFileNames = ['DocumentViewPicker02.txt'];
    let documentPicker = new picker.DocumentViewPicker();
431
    documentPicker.save(DocumentSaveOptions, (err: BusinessError, DocumentSaveResult: Array<string>) => {
H
huweiqi 已提交
432 433 434 435 436 437 438
      if (err) {
        console.error('DocumentViewPicker.save failed with err: ' + err);
        return;
      }
      console.info('DocumentViewPicker.save successfully, DocumentSaveResult uri: ' + JSON.stringify(DocumentSaveResult));
    });
  } catch (err) {
H
huweiqi 已提交
439
    console.error('DocumentViewPicker failed with err: ' + err);
H
huweiqi 已提交
440 441 442 443 444 445 446 447 448 449 450 451
  }
}
```

### save

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

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

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

Z
zengyawen 已提交
452
**参数:**
H
huweiqi 已提交
453 454 455 456 457 458 459 460

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

**示例:**

```ts
461
async example12() {
H
huweiqi 已提交
462 463
  try {
    let documentPicker = new picker.DocumentViewPicker();
464
    documentPicker.save((err: BusinessError, DocumentSaveResult: Array<string>) => {
H
huweiqi 已提交
465 466 467 468 469 470 471
      if (err) {
        console.error('DocumentViewPicker.save failed with err: ' + err);
        return;
      }
      console.info('DocumentViewPicker.save successfully, DocumentSaveResult uri: ' + JSON.stringify(DocumentSaveResult));
    });
  } catch (err) {
H
huweiqi 已提交
472
    console.error('DocumentViewPicker failed with err: ' + err);
H
huweiqi 已提交
473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496
  }
}
```

## 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 已提交
497
**参数:**
H
huweiqi 已提交
498 499 500

| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
501
| option | [AudioSelectOptions](#audioselectoptions) | 否   | audioPicker音频选择选项,若无此参数,则默认拉起audioPicker主界面  |
H
huweiqi 已提交
502 503 504 505 506

**返回值:**

| 类型                            | 说明    |
| ----------------------------- | :---- |
H
huweiqi 已提交
507
| Promise&lt;Array&lt;string&gt;&gt; | Promise对象。返回audioPicker选择音频后的结果集 |
H
huweiqi 已提交
508 509 510 511

**示例:**

```ts
512
async example13() {
H
huweiqi 已提交
513 514 515
  try {
    let AudioSelectOptions = new picker.AudioSelectOptions();
    let audioPicker = new picker.AudioViewPicker();
516
    audioPicker.select(AudioSelectOptions).then((AudioSelectResult: Array<string>) => {
H
huweiqi 已提交
517
      console.info('AudioViewPicker.select successfully, AudioSelectResult uri: ' + JSON.stringify(AudioSelectResult));
518
    }).catch((err: BusinessError) => {
H
huweiqi 已提交
519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534
      console.error('AudioViewPicker.select failed with err: ' + err);
    });
  } catch (err) {
    console.error('AudioViewPicker failed with err: ' + err);
  }
}
```

### select

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

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

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

Z
zengyawen 已提交
535
**参数:**
H
huweiqi 已提交
536 537 538 539 540 541 542 543 544

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

**示例:**

```ts
545
async example14() {
H
huweiqi 已提交
546 547 548
  try {
    let AudioSelectOptions = new picker.AudioSelectOptions();
    let audioPicker = new picker.AudioViewPicker();
549
    audioPicker.select(AudioSelectOptions, (err: BusinessError, AudioSelectResult: Array<string>) => {
H
huweiqi 已提交
550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569
      if (err) {
        console.error('AudioViewPicker.select failed with err: ' + err);
        return;
      }
      console.info('AudioViewPicker.select successfully, AudioSelectResult uri: ' + JSON.stringify(AudioSelectResult));
    });
  } catch (err) {
    console.error('AudioViewPicker failed with err: ' + err);
  }
}
```

### select

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

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

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

Z
zengyawen 已提交
570
**参数:**
H
huweiqi 已提交
571 572 573 574 575 576 577 578

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

**示例:**

```ts
579
async example15() {
H
huweiqi 已提交
580 581
  try {
    let audioPicker = new picker.AudioViewPicker();
582
    audioPicker.select((err: BusinessError, AudioSelectResult: Array<string>) => {
H
huweiqi 已提交
583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602
      if (err) {
        console.error('AudioViewPicker.select failed with err: ' + err);
        return;
      }
      console.info('AudioViewPicker.select successfully, AudioSelectResult uri: ' + JSON.stringify(AudioSelectResult));
    });
  } catch (err) {
    console.error('AudioViewPicker failed with err: ' + err);
  }
}
```

### save

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

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

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

Z
zengyawen 已提交
603
**参数:**
H
huweiqi 已提交
604 605 606

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

**返回值:**

| 类型                            | 说明    |
| ----------------------------- | ---- |
H
huweiqi 已提交
613
| Promise&lt;Array&lt;string&gt;&gt; | Promise对象。返回audioPicker保存音频文件后的结果集 |
H
huweiqi 已提交
614 615 616 617

**示例:**

```ts
618
async example16() {
H
huweiqi 已提交
619 620 621 622
  try {
    let AudioSaveOptions = new picker.AudioSaveOptions();
    AudioSaveOptions.newFileNames = ['AudioViewPicker01.mp3'];
    let audioPicker = new picker.AudioViewPicker();
623
    audioPicker.save(AudioSaveOptions).then((AudioSaveResult: Array<string>) => {
H
huweiqi 已提交
624
      console.info('AudioViewPicker.save successfully, AudioSaveResult uri: ' + JSON.stringify(AudioSaveResult))
625
    }).catch((err: BusinessError) => {
H
huweiqi 已提交
626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641
      console.error('AudioViewPicker.save failed with err: ' + err);
    });
  } catch (err) {
    console.error('AudioViewPicker failed with err: ' + err);
  }
}
```

### save

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

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

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

Z
zengyawen 已提交
642
**参数:**
H
huweiqi 已提交
643 644 645 646 647 648 649 650 651

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

**示例:**

```ts
652
async example17() {
H
huweiqi 已提交
653 654 655 656
  try {
    let AudioSaveOptions = new picker.AudioSaveOptions();
    AudioSaveOptions.newFileNames = ['AudioViewPicker02.mp3'];
    let audioPicker = new picker.AudioViewPicker();
657
    audioPicker.save(AudioSaveOptions, (err: BusinessError, AudioSaveResult: Array<string>) => {
H
huweiqi 已提交
658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677
      if (err) {
        console.error('AudioViewPicker.save failed with err: ' + err);
        return;
      }
      console.info('AudioViewPicker.save successfully, AudioSaveResult uri: ' + JSON.stringify(AudioSaveResult));
    });
  } catch (err) {
    console.error('AudioViewPicker failed with err: ' + err);
  }
}
```

### save

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

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

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

Z
zengyawen 已提交
678
**参数:**
H
huweiqi 已提交
679 680 681 682 683 684 685 686

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

**示例:**

```ts
687
async example18() {
H
huweiqi 已提交
688 689
  try {
    let audioPicker = new picker.AudioViewPicker();
690
    audioPicker.save((err: BusinessError, AudioSaveResult: Array<string>) => {
H
huweiqi 已提交
691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706
      if (err) {
        console.error('AudioViewPicker.save failed with err: ' + err);
        return;
      }
      console.info('AudioViewPicker.save successfully, AudioSaveResult uri: ' + JSON.stringify(AudioSaveResult));
    });
  } catch (err) {
    console.error('AudioViewPicker failed with err: ' + err);
  }
}
```

## PhotoViewMIMETypes

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

707
**系统能力:** SystemCapability.FileManagement.UserFileService
H
huweiqi 已提交
708 709 710 711 712 713 714 715 716 717 718

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

## PhotoSelectOptions

图库选择选项。

719
**系统能力:** SystemCapability.FileManagement.UserFileService
H
huweiqi 已提交
720 721 722

| 名称                    | 类型                | 必填 | 说明                          |
| ----------------------- | ------------------- | ---- | -------------------------------- |
723 724
| MIMEType              | [PhotoViewMIMETypes](#photoviewmimetypes)   | 否   | 可选择的媒体文件类型,若无此参数,则默认为图片和视频类型 |
| maxSelectNumber       | number | 否   | 选择媒体文件数量的最大值(默认值为50,最大值为500)      |
H
huweiqi 已提交
725 726 727 728 729

## PhotoSelectResult

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

730
**系统能力:** SystemCapability.FileManagement.UserFileService
H
huweiqi 已提交
731 732 733 734 735 736 737 738 739 740

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

## PhotoSaveOptions

图片或视频的保存选项。

741
**系统能力:** SystemCapability.FileManagement.UserFileService
H
huweiqi 已提交
742 743 744

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

## DocumentSelectOptions

749
文档选择选项。
H
huweiqi 已提交
750 751 752

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

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

H
huweiqi 已提交
759 760 761 762
## DocumentSaveOptions

文档保存选项。

763
**系统能力:** SystemCapability.FileManagement.UserFileService
H
huweiqi 已提交
764 765 766

| 名称                    | 类型                | 必填 |  说明                           |
| ----------------------- | ------------------- | ---- | ---------------------------- |
767
| newFileNames            | Array&lt;string&gt;    | 否   | 拉起documentPicker进行保存的文件名,若无此参数,则默认需要用户自行输入 |
Y
yxn 已提交
768 769
| defaultFilePathUri<sup>10+</sup>    | string  | 否   | 指定保存的文件或者目录路径 |
| fileSuffixChoices<sup>10+</sup>     | Array&lt;string&gt; | 否   | 保存文件的后缀类型 |
H
huweiqi 已提交
770 771 772 773 774 775 776 777 778 779 780

## AudioSelectOptions

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

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

## AudioSaveOptions

音频的保存选项。

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

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