# Interfaces (Others)
> **NOTE**
>
> 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.
## MediaChangeRequest11+
Media change request, which is the parent class of the asset change request and album change request.
> **NOTE**
>
> **MediaChangeRequest** takes effect only after [applyChanges](arkts-apis-photoAccessHelper-PhotoAccessHelper.md#applychanges11) is called.
**Atomic service API**: This API can be used in atomic services since API version 11.
**System capability**: SystemCapability.FileManagement.PhotoAccessHelper.Core
## CreateOptions
Options for creating an image or video asset.
The title must meet the following requirements:
- It does not contain a file name extension.
- The file name cannot exceed 255 characters.
- It does not contain any of the following characters:
. .. \ / : * ? " ' ` < > | { } [ ]
**System capability**: SystemCapability.FileManagement.PhotoAccessHelper.Core
| Name | Type | Mandatory| Description |
| ---------------------- | ------------------- | ---- | ------------------------------------------------ |
| title | string | No | Title of the image or video.
**Atomic service API**: This API can be used in atomic services since API version 11. |
| subtype12+ | [PhotoSubtype](arkts-apis-photoAccessHelper-e.md#photosubtype12) | No | Subtype of the image or video file.
**Atomic service API**: This API can be used in atomic services since API version 12. |
## FetchOptions
Defines the retrieval options.
**System capability**: SystemCapability.FileManagement.PhotoAccessHelper.Core
| Name | Type | Readable| Writable| Description |
| ---------------------- | ------------------- | ---- |---- | ------------------------------------------------ |
| fetchColumns | Array<string> | Yes | Yes | Names of the columns specified for query.
If this parameter is left blank for photos, photos are fetched by **'uri'**, **'media_type'**, **'subtype'**, and **'display_name'** by default. An error will be thrown if [get](arkts-apis-photoAccessHelper-PhotoAsset.md#get) is used to obtain other attributes of this object.
Example: **fetchColumns: ['uri', 'title']**.
If this parameter is left blank for albums, albums are fetched by **'uri'** and **'album_name'** by default.
**Atomic service API**: This API can be used in atomic services since API version 20.|
| predicates | [dataSharePredicates.DataSharePredicates](../apis-arkdata/js-apis-data-dataSharePredicates.md#datasharepredicates) | Yes | Yes | Predicates that specify the fetch criteria.
**Atomic service API**: This API can be used in atomic services since API version 20.|
## RequestOptions11+
Represents request options.
**System capability**: SystemCapability.FileManagement.PhotoAccessHelper.Core
| Name | Type | Read-Only| Optional| Description |
| ---------------------- |----------------------------| ---- | ---- | ------------------------------------------- |
| deliveryMode | [DeliveryMode](arkts-apis-photoAccessHelper-e.md#deliverymode11) | No | No | Delivery mode of the requested asset. The value can be **FAST_MODE**, **HIGH_QUALITY_MODE**, or **BALANCE_MODE**.|
| compatibleMode15+ | [CompatibleMode](arkts-apis-photoAccessHelper-e.md#compatiblemode15) | No | Yes | HDR video transcoding policy, which can be **FAST_ORIGINAL_FORMAT_MODE** (maintaining the original HDR format) or **COMPATIBLE_FORMAT_MODE** (converting HDR content to SDR format). The default value is **FAST_ORIGINAL_FORMAT_MODE**.|
| mediaAssetProgressHandler15+ | [MediaAssetProgressHandler](arkts-apis-photoAccessHelper-MediaAssetProgressHandler.md) | No | Yes | Callback used to return the HDR-to-SDR conversion progress.|
## ChangeData
Defines the return value of the listener callback.
**System capability**: SystemCapability.FileManagement.PhotoAccessHelper.Core
| Name | Type | Readable| Writable| Description |
| ------- | --------------------------- | ---- | ---- | ------------------------------------------------------------ |
| type | [NotifyType](arkts-apis-photoAccessHelper-e.md#notifytype) | Yes | No | Notification type. |
| uris | Array<string> | Yes | No | All URIs with the same [NotifyType](arkts-apis-photoAccessHelper-e.md#notifytype), which can be **PhotoAsset** or **Album**.|
| extraUris | Array<string> | Yes | No | URIs of the changed files in the album. The value may be undefined. Check whether the value is undefined before using it. |
## TextContextInfo12+
Represents the text information about the recommended images.
**Atomic service API**: This API can be used in atomic services since API version 12.
**System capability**: SystemCapability.FileManagement.PhotoAccessHelper.Core
| Name | Type | Mandatory| Description |
| ----------------------- | ------------------- | ---- | -------------------------------- |
| text | string | No | Text based on which images are recommended. The text cannot exceed 250 characters. The default value is an empty string.|
**Example**
```ts
import { BusinessError } from '@kit.BasicServicesKit';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
try {
let textInfo: photoAccessHelper.TextContextInfo = {
text: 'Pandas at Shanghai Wild Zoo'
}
let recommendOptions: photoAccessHelper.RecommendationOptions = {
textContextInfo: textInfo
}
let options: photoAccessHelper.PhotoSelectOptions = {
MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE,
maxSelectNumber: 1,
recommendationOptions: recommendOptions
}
let photoPicker = new photoAccessHelper.PhotoViewPicker();
photoPicker.select(options).then((PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => {
console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult));
}).catch((err: BusinessError) => {
console.error(`PhotoViewPicker.select failed with err: ${err.code}, ${err.message}`);
});
} catch (error) {
let err: BusinessError = error as BusinessError;
console.error(`PhotoViewPicker failed with err: ${err.code}, ${err.message}`);
}
}
```
## PhotoCreationConfig12+
Represents the configuration for saving a media asset (image or video) to the media library, including the file name.
**Atomic service API**: This API can be used in atomic services since API version 12.
**System capability**: SystemCapability.FileManagement.PhotoAccessHelper.Core
| Name | Type | Mandatory| Description |
| ---------------------- | ------------------- | ---- | ------------------------------------------------ |
| title | string | No | Title of the image or video. If this parameter is not passed, the system generates a title. The title must meet the following requirements:
- It does not contain a file name extension.
- The file name, which is in the format of title+file name extension, does not exceed 255 characters.
- The title does not contain any of the following characters:\ / : * ? " ' ` < > \| { } [ ]|
| fileNameExtension | string | Yes | File name extension, for example, **'jpg'**.|
| photoType | [PhotoType](arkts-apis-photoAccessHelper-e.md#phototype) | Yes | Type of the file to create, which can be **IMAGE** or **VIDEO**. See [PhotoType](arkts-apis-photoAccessHelper-e.md#phototype).|
| subtype | [PhotoSubtype](arkts-apis-photoAccessHelper-e.md#photosubtype12) | No | Image or video file subtype. Currently, only **DEFAULT** is supported. See [PhotoSubtype](arkts-apis-photoAccessHelper-e.md#photosubtype12).|
## PhotoAssetChangeInfo20+
Describes the information about a media asset.
**System capability**: SystemCapability.FileManagement.PhotoAccessHelper.Core
| Name| Type | Read-Only| Optional| Description |
| ---- | ------- | ---- | ---- | ----- |
| uri | string | No| No| URI of the media asset.|
| mediaType | [PhotoType](arkts-apis-photoAccessHelper-e.md#phototype) | No| No | Type of the media asset (image or video).|
| albumUri | string | No| No| URI of the album that the media asset belongs to. |
## PhotoAssetChangeData20+
Describes the detailed change data of a media asset.
**System capability**: SystemCapability.FileManagement.PhotoAccessHelper.Core
| Name | Type | Read-Only| Optional| Description |
| ---- | ------- | ---- | ---- | ----- |
| assetBeforeChange | [PhotoAssetChangeInfo](#photoassetchangeinfo20) \| null | No| No| Data of the media asset before change. In the case of asset addition, **assetBeforeChange** is null.|
| assetAfterChange | [PhotoAssetChangeInfo](#photoassetchangeinfo20) \| null | No| No | Data of the media asset after change. In the case of asset deletion, **assetAfterChange** is null.|
| isContentChanged |boolean | No| No| Whether the content of the media asset is changed. **true** if changed, **false** otherwise. |
| isDeleted |boolean | No| No| Whether the media asset is deleted. **true** if deleted, **false** otherwise. |
## PhotoAssetChangeInfos20+
Describes the notification information about the change of a media asset.
**System capability**: SystemCapability.FileManagement.PhotoAccessHelper.Core
| Name | Type | Read-Only| Optional| Description |
| ---- | ------- | ---- | ---- | ----- |
| type | [NotifyChangeType](arkts-apis-photoAccessHelper-e.md#notifychangetype20) | No| No| Type of the media asset change.|
| assetChangeDatas | [PhotoAssetChangeData](#photoassetchangedata20)[] \| null | No| No| Array of changed media assets. If all media assets need to be queried again, **assetChangeDatas** is null. |
| isForRecheck | boolean | No| No| Whether the application should query all media assets again. **true** if the application should query all assets again, **false** otherwise.
**NOTE**: In special cases or abnormal notification scenarios, **isForRecheck** will be **true**. In this case, the application should query all assets again. |
## AlbumChangeInfo20+
Describes the album information.
**System capability**: SystemCapability.FileManagement.PhotoAccessHelper.Core
| Name | Type | Read-Only| Optional| Description |
| ---- | ------- | ---- | ---- | ----- |
| albumType | [AlbumType](arkts-apis-photoAccessHelper-e.md#albumtype) | No| No| Type of the album.|
| albumSubtype | [AlbumSubtype](arkts-apis-photoAccessHelper-e.md#albumsubtype) | No| No | Subtype of the album.|
| albumName | string |No|No| Album name. |
| albumUri | string |No|No| URI of the album. |
| imageCount | number |No|No| Number of images in the album. |
| videoCount | number |No|No| Number of videos in the album. |
| count | number |No|No| Total number of assets in the album, including images and videos. |
| coverUri | string |No|No| URI of the album cover asset. |
## AlbumChangeData20+
Describes the detailed change data of an album.
**System capability**: SystemCapability.FileManagement.PhotoAccessHelper.Core
| Name | Type | Read-Only| Optional| Description |
| ---- | ------- | ---- | ---- | ----- |
| albumBeforeChange | [AlbumChangeInfo](#albumchangeinfo20) \| null | No| No| Data of the album before change. If an album is added, **albumBeforeChange** is null.|
| albumAfterChange | [AlbumChangeInfo](#albumchangeinfo20) \| null | No| No | Data of the album after change. In the case of album deletion, **albumAfterChange** is null.|
## AlbumChangeInfos20+
Describes the notification information about the change of an album.
**System capability**: SystemCapability.FileManagement.PhotoAccessHelper.Core
| Name | Type | Read-Only| Optional| Description |
| ---- | ------- | ---- | ---- | ----- |
| type | [NotifyChangeType](arkts-apis-photoAccessHelper-e.md#notifychangetype20) | No| No| Type of the album change.|
| albumChangeDatas | [AlbumChangeData](#albumchangedata20)[] \| null | No| No| Array of changed albums. If all albums need to be queried again, **albumChangeDatas** is null. |
| isForRecheck | boolean | No| No| Whether the application should query all albums again. **true** if the application should query all albums again, **false** otherwise.
**NOTE**: In special cases or abnormal notification scenarios, **isForRecheck** will be **true**. In this case, the application should query all albums again. |