Interface (PhotoAsset)
PhotoAsset provides APIs for encapsulating file asset attributes.
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.
Modules to Import
import { photoAccessHelper } from '@kit.MediaLibraryKit';
Properties
System capability: SystemCapability.FileManagement.PhotoAccessHelper.Core
| Name | Type | Read-Only | Optional | Description |
|---|---|---|---|---|
| uri | string | Yes | No | Media asset URI, for example, file://media/Photo/1/IMG_datetime_0001/displayName.jpg. For details, see Media File URI. Atomic service API: This API can be used in atomic services since API version 12. |
| photoType | PhotoType | Yes | No | Type of the file. Atomic service API: This API can be used in atomic services since API version 20. |
| displayName | string | Yes | No | File name, including the file name extension, to display. The string length ranges from 1 to 255. Atomic service API: This API can be used in atomic services since API version 20. |
get
get(member: string): MemberType
Obtains a PhotoAsset member parameter.
Atomic service API: This API can be used in atomic services since API version 20.
System capability: SystemCapability.FileManagement.PhotoAccessHelper.Core
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| member | string | Yes | Name of the member parameter to obtain. Except 'uri', 'media_type', 'subtype', and 'display_name', you need to pass in PhotoKeys in fetchColumns. For example, to obtain the title, pass in fetchColumns: ['title']. |
Return value
| Type | Description |
|---|---|
| MemberType | PhotoAsset member parameter obtained. |
Error codes
For details about the error codes, see Universal Error Codes and File Management Error Codes.
| ID | Error Message |
|---|---|
| 13900020 | Invalid argument. |
| 14000014 | The provided member must be a property name of PhotoKey. |
Example
For details about how to create a phAccessHelper instance, see the example provided in photoAccessHelper.getPhotoAccessHelper.
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('photoAssetGetDemo');
try {
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: ['title'],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
let title: photoAccessHelper.PhotoKeys = photoAccessHelper.PhotoKeys.TITLE;
let photoAssetTitle: photoAccessHelper.MemberType = photoAsset.get(title.toString());
console.info('photoAsset Get photoAssetTitle = ', photoAssetTitle);
} catch (err) {
console.error(`release failed. error: ${err.code}, ${err.message}`);
}
}
set
set(member: string, value: string): void
Sets a PhotoAsset member parameter.
System capability: SystemCapability.FileManagement.PhotoAccessHelper.Core
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| member | string | Yes | Name of the member parameter to set, for example, PhotoKeys.TITLE. The string length ranges from 1 to 255. |
| value | string | Yes | Value of the member parameter to set. Only the value of PhotoKeys.TITLE can be changed. The title must meet the following requirements: - It must not contain a file name extension. - The string length ranges from 1 to 255. (The asset file name is in the format of title + file name extension.) - It must not contain any invalid characters, which are:\ / : * ? " ' ` < > |{ } [ ] |
Error codes
For details about the error codes, see Universal Error Codes and File Management Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 13900020 | Invalid argument. |
| 14000014 | The provided member must be a property name of PhotoKey. |
Example
For details about how to create a phAccessHelper instance, see the example provided in photoAccessHelper.getPhotoAccessHelper.
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('photoAssetSetDemo');
try {
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: ['title'],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
let title: string = photoAccessHelper.PhotoKeys.TITLE.toString();
photoAsset.set(title, 'newTitle');
} catch (err) {
console.error(`release failed. error: ${err.code}, ${err.message}`);
}
}
commitModify
commitModify(callback: AsyncCallback<void>): void
Commits the modification on the file metadata to the database. This API uses an asynchronous callback to return the result.
Required permissions: ohos.permission.WRITE_IMAGEVIDEO
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.FileManagement.PhotoAccessHelper.Core
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| callback | AsyncCallback<void> | Yes | Callback function. If the file metadata is modified successfully, err is undefined. Otherwise, err is an error object. |
Error codes
For details about the error codes, see Universal Error Codes and File Management Error Codes.
If error code 14000001 is returned, refer to PhotoKeys to learn about the format and length requirements of the file name.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 201 | Permission denied. |
| 13900020 | Invalid argument. |
| 14000001 | Invalid display name. |
| 14000011 | System inner fail. |
Example
For details about how to create a phAccessHelper instance, see the example provided in photoAccessHelper.getPhotoAccessHelper.
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('commitModifyDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: ['title'],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
let title: string = photoAccessHelper.PhotoKeys.TITLE.toString();
let photoAssetTitle: photoAccessHelper.MemberType = photoAsset.get(title);
console.info('photoAsset get photoAssetTitle = ', photoAssetTitle);
photoAsset.set(title, 'newTitle2');
photoAsset.commitModify((err) => {
if (err === undefined) {
let newPhotoAssetTitle: photoAccessHelper.MemberType = photoAsset.get(title);
console.info('photoAsset get newPhotoAssetTitle = ', newPhotoAssetTitle);
} else {
console.error(`commitModify failed, error: ${err.code}, ${err.message}`);
}
});
}
commitModify
commitModify(): Promise<void>
Commits the modification on the file metadata to the database. This API uses a promise to return the result.
Required permissions: ohos.permission.WRITE_IMAGEVIDEO
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.FileManagement.PhotoAccessHelper.Core
Return value
| Type | Description |
|---|---|
| Promise<void> | Promise that returns no value. |
Error codes
For details about the error codes, see Universal Error Codes and File Management Error Codes.
If error code 14000001 is returned, refer to PhotoKeys to learn about the format and length requirements of the file name.
In API version 13 and earlier versions, if the caller does not have the required permission, error code 13900012 is returned. Starting from API version 14, the same situation raises error code 201.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 201 | Permission denied. |
| 13900020 | Invalid argument. |
| 14000001 | Invalid display name. |
| 14000011 | System inner fail. |
Example
For details about how to create a phAccessHelper instance, see the example provided in photoAccessHelper.getPhotoAccessHelper.
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('commitModifyDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: ['title'],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
if (photoAsset === undefined) {
console.error('commitModifyPromise photoAsset is undefined');
return;
}
let title: string = photoAccessHelper.PhotoKeys.TITLE.toString();
let photoAssetTitle: photoAccessHelper.MemberType = photoAsset.get(title);
console.info('photoAsset get photoAssetTitle = ', photoAssetTitle);
photoAsset.set(title, 'newTitle3');
try {
await photoAsset.commitModify();
let newPhotoAssetTitle: photoAccessHelper.MemberType = photoAsset.get(title);
console.info('photoAsset get newPhotoAssetTitle = ', newPhotoAssetTitle);
} catch (err) {
console.error(`release failed. error: ${err.code}, ${err.message}`);
}
}
close(deprecated)
close(fd: number, callback: AsyncCallback<void>): void
Closes the current file. This API uses an asynchronous callback to return the result.
NOTE
This API is supported since API version 10 and deprecated since API version 11. You are advised to use fileIo.close instead.
System capability: SystemCapability.FileManagement.PhotoAccessHelper.Core
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| fd | number | Yes | FD of the file to close. |
| callback | AsyncCallback<void> | Yes | Callback function. If the current file is closed successfully, err is undefined. Otherwise, err is an error object. |
Error codes
For details about the error codes, see Universal Error Codes and File Management Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 13900020 | Invalid argument. |
| 14000011 | System inner fail. |
Example
For details about how to create a phAccessHelper instance, see the example provided in photoAccessHelper.getPhotoAccessHelper.
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('closeDemo');
try {
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
let fd: number = await photoAsset.open('rw');
console.info('file fd', fd);
photoAsset.close(fd, (err) => {
if (err === undefined) {
console.info('asset close succeed.');
} else {
console.error(`close failed, error: ${err.code}, ${err.message}`);
}
});
} catch (err) {
console.error(`close failed, error: ${err.code}, ${err.message}`);
}
}
close(deprecated)
close(fd: number): Promise<void>
Closes the current file. This API uses a promise to return the result.
NOTE
This API is supported since API version 10 and deprecated since API version 11. You are advised to use fileIo.close instead.
System capability: SystemCapability.FileManagement.PhotoAccessHelper.Core
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| fd | number | Yes | FD of the file to close. |
Return value
| Type | Description |
|---|---|
| Promise<void> | Promise that returns no value. |
Error codes
For details about the error codes, see Universal Error Codes and File Management Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 13900020 | Invalid argument. |
| 14000011 | System inner fail. |
Example
For details about how to create a phAccessHelper instance, see the example provided in photoAccessHelper.getPhotoAccessHelper.
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('closeDemo');
try {
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
let fd = await asset.open('rw');
console.info('file fd', fd);
await asset.close(fd);
console.info('asset close succeed.');
} catch (err) {
console.error(`close failed, error: ${err.code}, ${err.message}`);
}
}
getThumbnail
getThumbnail(callback: AsyncCallback<image.PixelMap>): void
Obtains the thumbnail of a file. This API uses an asynchronous callback to return the result.
Required permissions: ohos.permission.READ_IMAGEVIDEO
Atomic service API: This API can be used in atomic services since API version 22.
System capability: SystemCapability.FileManagement.PhotoAccessHelper.Core
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| callback | AsyncCallback<image.PixelMap> | Yes | Callback function. If the thumbnail of a file is successfully obtained, err is undefined, and data is the PixelMap of the thumbnail. Otherwise, err is an error object. |
Error codes
For details about the error codes, see Universal Error Codes and File Management Error Codes.
If error code 13900012 is returned, follow the instructions provided in Before You Start.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 13900012 | Permission denied. |
| 13900020 | Invalid argument. |
| 14000011 | System inner fail. |
Example
For details about how to create a phAccessHelper instance, see the example provided in photoAccessHelper.getPhotoAccessHelper.
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getThumbnailDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
console.info('asset displayName = ', asset.displayName);
asset.getThumbnail((err, pixelMap) => {
if (err === undefined) {
console.info('getThumbnail successful ' + pixelMap);
} else {
console.error(`getThumbnail fail with error: ${err.code}, ${err.message}`);
}
});
}
getThumbnail
getThumbnail(size: image.Size, callback: AsyncCallback<image.PixelMap>): void
Obtains the file thumbnail of the given size. This API uses an asynchronous callback to return the result.
Required permissions: ohos.permission.READ_IMAGEVIDEO
Atomic service API: This API can be used in atomic services since API version 22.
System capability: SystemCapability.FileManagement.PhotoAccessHelper.Core
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| size | image.Size | Yes | Size of the thumbnail. |
| callback | AsyncCallback<image.PixelMap> | Yes | Callback function. If the thumbnail of a file is successfully obtained, err is undefined, and data is the PixelMap of the thumbnail. Otherwise, err is an error object. |
Error codes
For details about the error codes, see Universal Error Codes and File Management Error Codes.
If error code 13900012 is returned, follow the instructions provided in Before You Start.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 13900012 | Permission denied. |
| 13900020 | Invalid argument. |
| 14000011 | System inner fail. |
Example
For details about how to create a phAccessHelper instance, see the example provided in photoAccessHelper.getPhotoAccessHelper.
import { dataSharePredicates } from '@kit.ArkData';
import { image } from '@kit.ImageKit';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getThumbnailDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let size: image.Size = { width: 720, height: 720 };
try {
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
let asset = await fetchResult.getFirstObject();
console.info('asset displayName = ', asset.displayName);
asset.getThumbnail(size, (err, pixelMap) => {
if (err === undefined) {
console.info('getThumbnail successful ' + pixelMap);
} else {
console.error(`getThumbnail fail with error: ${err.code}, ${err.message}`);
}
});
} catch (error) {
console.error(`Error fetching assets: ${error.message}`);
}
}
getThumbnail
getThumbnail(size?: image.Size): Promise<image.PixelMap>
Obtains the file thumbnail of the given size. This API uses a promise to return the result.
Required permissions: ohos.permission.READ_IMAGEVIDEO
Atomic service API: This API can be used in atomic services since API version 22.
System capability: SystemCapability.FileManagement.PhotoAccessHelper.Core
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| size | image.Size | No | Size of the thumbnail. |
Return value
| Type | Description |
|---|---|
| Promise<image.PixelMap> | Promise used to return the PixelMap of the thumbnail. |
Error codes
For details about the error codes, see Universal Error Codes and File Management Error Codes.
If error code 13900012 is returned, follow the instructions provided in Before You Start.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 13900012 | Permission denied. |
| 13900020 | Invalid argument. |
| 14000011 | System inner fail. |
Example
For details about how to create a phAccessHelper instance, see the example provided in photoAccessHelper.getPhotoAccessHelper.
import { dataSharePredicates } from '@kit.ArkData';
import { image } from '@kit.ImageKit';
import { BusinessError } from '@kit.BasicServicesKit';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getThumbnailDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let size: image.Size = { width: 720, height: 720 };
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
let asset = await fetchResult.getFirstObject();
console.info('asset displayName = ', asset.displayName);
asset.getThumbnail(size).then((pixelMap) => {
console.info('getThumbnail successful ' + pixelMap);
}).catch((err: BusinessError) => {
console.error(`getThumbnail fail with error: ${err.code}, ${err.message}`);
});
}
clone14+
clone(title: string): Promise<PhotoAsset>
Clones a media asset. The file name can be set, but the file type cannot be changed. This API uses a promise to return the result.
Required permissions: ohos.permission.WRITE_IMAGEVIDEO
System capability: SystemCapability.FileManagement.PhotoAccessHelper.Core
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| title | string | Yes | Title of the cloned asset. The title must meet the following requirements: - It must not contain a file name extension. - The string length ranges from 1 to 255. (The asset file name is in the format of title + file name extension.) - It must not contain any invalid characters, which are:\ / : * ? " ' ` < > |{ } [ ] |
Return value
| Type | Description |
|---|---|
| Promise<PhotoAsset> | Promise used to return the PhotoAsset instance. |
Error codes
For details about the error codes, see Universal Error Codes and File Management Error Codes.
| ID | Error Message |
|---|---|
| 201 | Permission denied. |
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 14000011 | Internal system error. It is recommended to retry and check the logs.Possible causes: 1. Database corrupted; 2. The file system is abnormal; 3. The IPC request timed out. |
Example
For details about how to create a phAccessHelper instance, see the example provided in photoAccessHelper.getPhotoAccessHelper.
import { dataSharePredicates } from '@kit.ArkData';
import { systemDateTime } from '@kit.BasicServicesKit';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
try {
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
let title: string = systemDateTime.getTime().toString();
let newAsset: photoAccessHelper.PhotoAsset = await photoAsset.clone(title);
console.info('get new asset successfully');
} catch (error) {
console.error(`failed to get new asset. message = ${error.code}, ${error.message}`);
}
}
getReadOnlyFd(deprecated)
getReadOnlyFd(callback: AsyncCallback<number>): void
Opens this file in read-only mode. This API uses an asynchronous callback to return the result.
The returned FD must be closed when it is not required.
NOTE
This API is supported since API version 10 and deprecated since API version 11. You are advised to use fileIo.open instead.
Required permissions: ohos.permission.READ_IMAGEVIDEO
System capability: SystemCapability.FileManagement.PhotoAccessHelper.Core
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| callback | AsyncCallback<number> | Yes | Callback function. If the current file is opened successfully, err is undefined, and data is the file descriptor. Otherwise, err is an error object. |
Error codes
For details about the error codes, see Universal Error Codes and File Management Error Codes.
In API version 13 and earlier versions, if the caller does not have the required permission, error code 13900012 is returned. Starting from API version 14, the same situation raises error code 201.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 201 | Permission denied. |
| 13900020 | Invalid argument. |
| 14000011 | System inner fail. |
Example
For details about how to create a phAccessHelper instance, see the example provided in photoAccessHelper.getPhotoAccessHelper.
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getReadOnlyFdDemo');
// Ensure that there are images and video files in the device.
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let assetResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
let photoAsset: photoAccessHelper.PhotoAsset = await assetResult.getFirstObject();
photoAsset.getReadOnlyFd((err, fd) => {
if (fd !== undefined) {
console.info('File fd' + fd);
photoAsset.close(fd);
} else {
console.error(`getReadOnlyFd err: ${err.code}, ${err.message}`);
}
});
}
getReadOnlyFd(deprecated)
getReadOnlyFd(): Promise<number>
Opens this file in read-only mode. This API uses a promise to return the result.
The returned FD must be closed when it is not required.
NOTE
This API is supported since API version 10 and deprecated since API version 11. You are advised to use fileIo.open instead.
Required permissions: ohos.permission.READ_IMAGEVIDEO
System capability: SystemCapability.FileManagement.PhotoAccessHelper.Core
Return value
| Type | Description |
|---|---|
| Promise<number> | Promise used to return the FD of the file opened. |
Error codes
For details about the error codes, see Universal Error Codes and File Management Error Codes.
In API version 13 and earlier versions, if the caller does not have the required permission, error code 13900012 is returned. Starting from API version 14, the same situation raises error code 201.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 201 | Permission denied. |
| 13900020 | Invalid argument. |
| 14000011 | System inner fail. |
Example
For details about how to create a phAccessHelper instance, see the example provided in photoAccessHelper.getPhotoAccessHelper.
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getReadOnlyFdDemo');
try {
// Ensure that there are images and video files in the device.
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let assetResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
let photoAsset: photoAccessHelper.PhotoAsset = await assetResult.getFirstObject();
if (photoAsset === undefined) {
console.error('photoAsset is undefined');
return;
}
let fd: number = await photoAsset.getReadOnlyFd();
if (fd !== undefined) {
console.info('File fd' + fd);
photoAsset.close(fd);
} else {
console.error('getReadOnlyFd fail');
}
} catch (err) {
console.error(`getReadOnlyFd demo err: ${err.code}, ${err.message}`);
}
}
你可能感兴趣的鸿蒙文章
openharmony 鸿蒙 capi-mediaassetmanager-oh-mediaassetmanager
openharmony 鸿蒙 arkts-apis-photoAccessHelper-MediaAssetProgressHandler
openharmony 鸿蒙 arkts-apis-photoAccessHelper-AbsAlbum
openharmony 鸿蒙 arkts-apis-photoAccessHelper-PhotoAccessHelper
openharmony 鸿蒙 arkts-apis-photoAccessHelper-QuickImageDataHandler
openharmony 鸿蒙 capi-media-access-helper-capi-h
openharmony 鸿蒙 capi-mediaassetmanager-oh-movingphoto
openharmony 鸿蒙 capi-mediaassetmanager
openharmony 鸿蒙 capi-mediaassetmanager-medialibrary-requestid