• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Class (PhotoViewPicker)
2
3> **NOTE**
4>
5> The initial APIs of this module are supported since API version 10. Newly added APIs will be marked with a superscript to indicate their earliest API version.
6
7PhotoViewPicker provides APIs for the user to select images and videos. Before using the APIs of PhotoViewPicker, you need to create a PhotoViewPicker instance.
8
9**Atomic service API**: This API can be used in atomic services since API version 11.
10
11**System capability**: SystemCapability.FileManagement.PhotoAccessHelper.Core
12
13**Example**
14
15```ts
16let photoPicker = new photoAccessHelper.PhotoViewPicker();
17```
18
19## Modules to Import
20
21```ts
22import { photoAccessHelper } from '@kit.MediaLibraryKit';
23```
24
25## select
26
27select(option?: PhotoSelectOptions) : Promise<PhotoSelectResult>
28
29Starts a **photoPicker** page for the user to select one or more images or videos. This API uses a promise to return the result. You can pass in **PhotoSelectOptions** to specify the media file type and the maximum number of files to select.
30
31**NOTE**: The **photoUris** in the PhotoSelectResult object returned by this API has permanent authorization and can be used only by calling [photoAccessHelper.getAssets()](arkts-apis-photoAccessHelper-PhotoAccessHelper.md#getassets). For details, see [Using a Media File URI](../../file-management/user-file-uri-intro.md#using-a-media-file-uri).
32
33**Atomic service API**: This API can be used in atomic services since API version 11.
34
35**System capability**: SystemCapability.FileManagement.PhotoAccessHelper.Core
36
37**Parameters**
38
39| Name | Type   | Mandatory| Description                      |
40| ------- | ------- | ---- | -------------------------- |
41| option | [PhotoSelectOptions](arkts-apis-photoAccessHelper-class.md#photoselectoptions) | No  | Options for selecting files. If this parameter is not specified, up to 50 images and videos are selected by default.|
42
43**Return value**
44
45| Type                           | Description   |
46| ----------------------------- | :---- |
47| Promise<[PhotoSelectResult](arkts-apis-photoAccessHelper-class.md#photoselectresult)> | Promise used to return information about the images or videos selected.|
48
49**Error codes**
50
51For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [File Management Error Codes](../apis-core-file-kit/errorcode-filemanagement.md).
52
53| ID| Error Message|
54| -------- | ---------------------------------------- |
55| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
56| 13900042      | Unknown error.         |
57
58**Example**
59
60```ts
61import { BusinessError } from '@kit.BasicServicesKit';
62
63async function example01(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
64  try {
65    let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
66    PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
67    PhotoSelectOptions.maxSelectNumber = 5;
68    let photoPicker = new photoAccessHelper.PhotoViewPicker();
69    photoPicker.select(PhotoSelectOptions).then((PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => {
70      console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult));
71    }).catch((err: BusinessError) => {
72      console.error(`PhotoViewPicker.select failed with err: ${err.code}, ${err.message}`);
73    });
74  } catch (error) {
75    let err: BusinessError = error as BusinessError;
76    console.error(`PhotoViewPicker failed with err: ${err.code}, ${err.message}`);
77  }
78}
79```
80
81## select
82
83select(option: PhotoSelectOptions, callback: AsyncCallback<PhotoSelectResult>) : void
84
85Starts a **photoPicker** page for the user to select one or more images or videos. This API uses an asynchronous callback to return the result. You can pass in **PhotoSelectOptions** to specify the media file type and the maximum number of files to select.
86
87**NOTE**: The **photoUris** in the PhotoSelectResult object returned by this API has permanent authorization and can be used only by calling [photoAccessHelper.getAssets()](arkts-apis-photoAccessHelper-PhotoAccessHelper.md#getassets). For details, see [Using a Media File URI](../../file-management/user-file-uri-intro.md#using-a-media-file-uri).
88
89**Atomic service API**: This API can be used in atomic services since API version 11.
90
91**System capability**: SystemCapability.FileManagement.PhotoAccessHelper.Core
92
93**Parameters**
94
95| Name | Type   | Mandatory| Description                      |
96| ------- | ------- | ---- | -------------------------- |
97| option | [PhotoSelectOptions](arkts-apis-photoAccessHelper-class.md#photoselectoptions) | Yes  | Options for selecting images or videos.|
98| callback | AsyncCallback<[PhotoSelectResult](arkts-apis-photoAccessHelper-class.md#photoselectresult)>      | Yes  | Callback used to return information about the images or videos selected.|
99
100**Error codes**
101
102For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [File Management Error Codes](../apis-core-file-kit/errorcode-filemanagement.md).
103
104| ID| Error Message|
105| -------- | ---------------------------------------- |
106| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
107| 13900042      | Unknown error.         |
108
109**Example**
110
111```ts
112import { BusinessError } from '@kit.BasicServicesKit';
113
114async function example02(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
115  try {
116    let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
117    PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
118    PhotoSelectOptions.maxSelectNumber = 5;
119    let photoPicker = new photoAccessHelper.PhotoViewPicker();
120    photoPicker.select(PhotoSelectOptions, (err: BusinessError, PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => {
121      if (err) {
122        console.error(`PhotoViewPicker.select failed with err: ${err.code}, ${err.message}`);
123        return;
124      }
125      console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult));
126    });
127  } catch (error) {
128    let err: BusinessError = error as BusinessError;
129    console.error(`PhotoViewPicker failed with err: ${err.code}, ${err.message}`);
130  }
131}
132```
133
134## select
135
136select(callback: AsyncCallback<PhotoSelectResult>) : void
137
138Starts a **photoPicker** page for the user to select one or more images or videos. This API uses an asynchronous callback to return the result.
139
140**NOTE**: The **photoUris** in the PhotoSelectResult object returned by this API has permanent authorization and can be used only by calling [photoAccessHelper.getAssets()](arkts-apis-photoAccessHelper-PhotoAccessHelper.md#getassets). For details, see [Using a Media File URI](../../file-management/user-file-uri-intro.md#using-a-media-file-uri).
141
142**Atomic service API**: This API can be used in atomic services since API version 11.
143
144**System capability**: SystemCapability.FileManagement.PhotoAccessHelper.Core
145
146**Parameters**
147
148| Name | Type   | Mandatory| Description                      |
149| ------- | ------- | ---- | -------------------------- |
150| callback | AsyncCallback<[PhotoSelectResult](arkts-apis-photoAccessHelper-class.md#photoselectresult)>      | Yes  | Callback used to return information about the images or videos selected.|
151
152**Error codes**
153
154For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [File Management Error Codes](../apis-core-file-kit/errorcode-filemanagement.md).
155
156| ID| Error Message|
157| -------- | ---------------------------------------- |
158| 401    | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
159| 13900042      | Unknown error.         |
160
161**Example**
162
163```ts
164import { BusinessError } from '@kit.BasicServicesKit';
165
166async function example03(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
167  try {
168    let photoPicker = new photoAccessHelper.PhotoViewPicker();
169    photoPicker.select((err: BusinessError, PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => {
170      if (err) {
171        console.error(`PhotoViewPicker.select failed with err: ${err.code}, ${err.message}`);
172        return;
173      }
174      console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult));
175    });
176  } catch (error) {
177    let err: BusinessError = error as BusinessError;
178    console.error(`PhotoViewPicker failed with err: ${err.code}, ${err.message}`);
179  }
180}
181```
182