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