该模块提供相册管理能力,包括创建相册、访问和修改相册中的媒体数据。
说明:
本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
import { photoAccessHelper } from '@kit.MediaLibraryKit';
getPhotoAccessHelper(context: Context): PhotoAccessHelper
获取相册管理模块的实例,用于访问和修改相册中的媒体文件。
模型约束: 此接口仅可在Stage模型下使用。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 传入Ability实例的上下文。 |
返回值:
类型 | 说明 |
---|---|
PhotoAccessHelper | 相册管理模块的实例。 |
错误码:
接口抛出错误码的详细介绍请参见通用错误码。
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
示例:
// 此处获取的phAccessHelper实例为全局对象,后续使用到phAccessHelper的地方默认为使用此处获取的对象,如未添加此段代码报phAccessHelper未定义的错误请自行添加。
// 请在组件内获取context,确保this.getUiContext().getHostContext()返回结果为UIAbilityContext
import { common } from '@kit.AbilityKit';
@Entry
@Component
struct Index {
build() {
Row() {
Button("example").onClick(async () => {
let context: Context = this.getUIContext().getHostContext() as common.UIAbilityContext;
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
}).width('100%')
}
.height('90%')
}
}
getAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<PhotoAsset>>): void
获取图片和视频资源,使用callback方式返回结果。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.READ_IMAGEVIDEO
通过picker的方式调用该接口来查询指定uri对应的图片或视频资源,不需要申请'ohos.permission.READ_IMAGEVIDEO'权限,详情请参考开发指南。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | FetchOptions | 是 | 图片和视频检索选项。 |
callback | AsyncCallback<FetchResult<PhotoAsset>> | 是 | callback返回图片和视频检索结果集。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getAssets');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
phAccessHelper.getAssets(fetchOptions, async (err, fetchResult) => {
if (fetchResult !== undefined) {
console.info('fetchResult success');
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
if (photoAsset !== undefined) {
console.info('photoAsset.displayName : ' + photoAsset.displayName);
}
} else {
console.error(`fetchResult fail with error: ${err.code}, ${err.message}`);
}
});
}
getAssets(options: FetchOptions): Promise<FetchResult<PhotoAsset>>
获取图片和视频资源,使用Promise方式返回结果。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.READ_IMAGEVIDEO
通过picker的方式调用该接口来查询指定uri对应的图片或视频资源,不需要申请'ohos.permission.READ_IMAGEVIDEO'权限,详情请参考开发指南。
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | FetchOptions | 是 | 图片和视频检索选项。 |
返回值:
类型 | 说明 |
---|---|
Promise<FetchResult<PhotoAsset>> | Promise对象,返回图片和视频数据结果集。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getAssets');
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);
if (fetchResult !== undefined) {
console.info('fetchResult success');
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
if (photoAsset !== undefined) {
console.info('photoAsset.displayName :' + photoAsset.displayName);
}
}
} catch (err) {
console.error(`getAssets failed, error: ${err.code}, ${err.message}`);
}
}
getBurstAssets(burstKey: string, options: FetchOptions): Promise<FetchResult<PhotoAsset>>
获取连拍照片资源,使用Promise方式返回结果。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.READ_IMAGEVIDEO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
burstKey | string | 是 | 一组连拍照片的唯一标识:uuid(可传入PhotoKeys的BURST_KEY)。字符串长度为36。 |
options | FetchOptions | 是 | 连拍照片检索选项。 |
返回值:
类型 | 说明 |
---|---|
Promise<FetchResult<PhotoAsset>> | Promise对象,返回连拍照片数据结果集。 |
错误码:
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getBurstAssets');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
// burstKey为36位的uuid,可以根据photoAccessHelper.PhotoKeys获取。
let burstKey: string = "e719d696-09fa-44f8-8e9e-ec3f215aa62a";
try {
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await
phAccessHelper.getBurstAssets(burstKey, fetchOptions);
if (fetchResult !== undefined) {
console.info('fetchResult success');
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
if (photoAsset !== undefined) {
console.info('photoAsset.displayName :' + photoAsset.displayName);
}
}
} catch (err) {
console.error(`getBurstAssets failed, error: ${err.code}, ${err.message}`);
}
}
createAsset(photoType: PhotoType, extension: string, options: CreateOptions, callback: AsyncCallback<string>): void
指定文件类型、后缀和创建选项,创建图片或视频资源。使用callback方式返回结果。
在未申请相册管理模块权限'ohos.permission.WRITE_IMAGEVIDEO'时,可以使用安全控件创建媒体资源,详情请参考开发指南。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.WRITE_IMAGEVIDEO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
photoType | PhotoType | 是 | 创建的文件类型,IMAGE或者VIDEO类型。 |
extension | string | 是 | 文件名后缀参数,例如:'jpg'。 |
options | CreateOptions | 是 | 创建选项,例如{title: 'testPhoto'}。 |
callback | AsyncCallback<string> | 是 | callback返回创建的图片和视频的uri。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('createAssetDemo');
let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE;
let extension:string = 'jpg';
let options: photoAccessHelper.CreateOptions = {
title: 'testPhoto'
}
phAccessHelper.createAsset(photoType, extension, options, (err, uri) => {
if (uri !== undefined) {
console.info('createAsset uri' + uri);
console.info('createAsset successfully');
} else {
console.error(`createAsset failed, error: ${err.code}, ${err.message}`);
}
});
}
createAsset(photoType: PhotoType, extension: string, callback: AsyncCallback<string>): void
指定文件类型和后缀,创建图片或视频资源,使用callback方式返回结果。
在未申请相册管理模块权限'ohos.permission.WRITE_IMAGEVIDEO'时,可以使用安全控件创建媒体资源,详情请参考开发指南。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.WRITE_IMAGEVIDEO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
photoType | PhotoType | 是 | 创建的文件类型,IMAGE或者VIDEO类型。 |
extension | string | 是 | 文件名后缀参数,例如:'jpg'。 |
callback | AsyncCallback<string> | 是 | callback返回创建的图片和视频的uri。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('createAssetDemo');
let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE;
let extension: string = 'jpg';
phAccessHelper.createAsset(photoType, extension, (err, uri) => {
if (uri !== undefined) {
console.info('createAsset uri' + uri);
console.info('createAsset successfully');
} else {
console.error(`createAsset failed, error: ${err.code}, ${err.message}`);
}
});
}
createAsset(photoType: PhotoType, extension: string, options?: CreateOptions): Promise<string>
指定文件类型、后缀和创建选项,创建图片或视频资源,以Promise方式返回结果。
在未申请相册管理模块权限'ohos.permission.WRITE_IMAGEVIDEO'时,可以使用安全控件创建媒体资源,详情请参考开发指南。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.WRITE_IMAGEVIDEO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
photoType | PhotoType | 是 | 创建的文件类型,IMAGE或者VIDEO类型。 |
extension | string | 是 | 文件名后缀参数,例如:'jpg'。 |
options | CreateOptions | 否 | 创建选项,例如{title: 'testPhoto'}。 |
返回值:
类型 | 说明 |
---|---|
Promise<string> | Promise对象,返回创建的图片和视频的uri。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('createAssetDemo');
try {
let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE;
let extension: string = 'jpg';
let options: photoAccessHelper.CreateOptions = {
title: 'testPhoto'
}
let uri: string = await phAccessHelper.createAsset(photoType, extension, options);
console.info('createAsset uri' + uri);
console.info('createAsset successfully');
} catch (err) {
console.error(`createAsset failed, error: ${err.code}, ${err.message}`);
}
}
getAlbums(type: AlbumType, subtype: AlbumSubtype, options: FetchOptions, callback: AsyncCallback<FetchResult<Album>>): void
根据检索选项和相册类型获取相册,使用callback方式返回结果。
获取相册前,确保相册已存在。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.READ_IMAGEVIDEO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | AlbumType | 是 | 相册类型。 |
subtype | AlbumSubtype | 是 | 相册子类型。 |
options | FetchOptions | 是 | 检索选项。 |
callback | AsyncCallback<FetchResult<Album>> | 是 | callback返回获取相册的结果集。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
// 示例代码中为获取相册名为newAlbumName的相册。
console.info('getAlbumsDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
predicates.equalTo('album_name', 'newAlbumName');
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions, async (err, fetchResult) => {
if (err) {
console.error(`getAlbumsCallback failed with err: ${err.code}, ${err.message}`);
return;
}
if (fetchResult === undefined) {
console.error('getAlbumsCallback fetchResult is undefined');
return;
}
let album = await fetchResult.getFirstObject();
console.info('getAlbumsCallback successfully, albumName: ' + album.albumName);
fetchResult.close();
});
}
getAlbums(type: AlbumType, subtype: AlbumSubtype, callback: AsyncCallback<FetchResult<Album>>): void
根据相册类型获取相册,使用callback方式返回结果。
获取相册前需先保证相册存在。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.READ_IMAGEVIDEO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | AlbumType | 是 | 相册类型。 |
subtype | AlbumSubtype | 是 | 相册子类型。 |
callback | AsyncCallback<FetchResult<Album>> | 是 | callback返回获取相册的结果集。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
// 示例代码中为获取统相册VIDEO,默认已预置。
console.info('getAlbumsDemo');
phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.VIDEO, async (err, fetchResult) => {
if (err) {
console.error(`getAlbumsCallback failed with err: ${err.code}, ${err.message}`);
return;
}
if (fetchResult === undefined) {
console.error('getAlbumsCallback fetchResult is undefined');
return;
}
let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
console.info('getAlbumsCallback successfully, albumUri: ' + album.albumUri);
fetchResult.close();
});
}
getAlbums(type: AlbumType, subtype: AlbumSubtype, options?: FetchOptions): Promise<FetchResult<Album>>
根据检索选项和相册类型获取相册,使用Promise方式返回结果。
在获取相册之前,确保相册已存在。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.READ_IMAGEVIDEO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | AlbumType | 是 | 相册类型。 |
subtype | AlbumSubtype | 是 | 相册子类型。 |
options | FetchOptions | 否 | 检索选项,不填时默认根据相册类型检索。 |
返回值:
类型 | 说明 |
---|---|
Promise<FetchResult<Album>> | Promise对象,返回获取相册的结果集。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
import { BusinessError } from '@kit.BasicServicesKit';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
// 示例代码中为获取相册名为newAlbumName的相册。
console.info('getAlbumsDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
predicates.equalTo('album_name', 'newAlbumName');
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions).then( async (fetchResult) => {
if (fetchResult === undefined) {
console.error('getAlbumsPromise fetchResult is undefined');
return;
}
let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
console.info('getAlbumsPromise successfully, albumName: ' + album.albumName);
fetchResult.close();
}).catch((err: BusinessError) => {
console.error(`getAlbumsPromise failed with err: ${err.code}, ${err.message}`);
});
}
registerChange(uri: string, forChildUris: boolean, callback: Callback<ChangeData>) : void
注册指定uri的监听,并通过callback方式返回异步结果。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
uri | string | 是 | PhotoAsset的uri, Album的uri或DefaultChangeUri的值。 |
forChildUris | boolean | 是 | 是否模糊监听。uri为相册uri时:forChildUris为true,能监听到相册中文件的变化。如果是false,只能监听相册本身变化;uri为photoAsset时:forChildUris为true、false没有区别;uri为DefaultChangeUri时:forChildUris必须为true,如果为false将找不到该uri,收不到任何消息。 |
callback | Callback<ChangeData> | 是 | 返回要监听的ChangeData。注:uri可以注册多个不同的callback监听,unRegisterChange可以关闭该uri所有监听,也可以关闭指定callback的监听。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
console.info('registerChangeDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
if (photoAsset !== undefined) {
console.info('photoAsset.displayName : ' + photoAsset.displayName);
}
let onCallback1 = (changeData: photoAccessHelper.ChangeData) => {
console.info('onCallback1 success, changData: ' + JSON.stringify(changeData));
//file had changed, do something.
}
let onCallback2 = (changeData: photoAccessHelper.ChangeData) => {
console.info('onCallback2 success, changData: ' + JSON.stringify(changeData));
//file had changed, do something.
}
// 注册onCallback1监听。
phAccessHelper.registerChange(photoAsset.uri, false, onCallback1);
// 注册onCallback2监听。
phAccessHelper.registerChange(photoAsset.uri, false, onCallback2);
await photoAccessHelper.MediaAssetChangeRequest.deleteAssets(context, [photoAsset]);
}
unRegisterChange(uri: string, callback?: Callback<ChangeData>): void
取消指定uri的监听,一个uri可以注册多个监听,存在多个callback监听时,可以取消指定注册的callback的监听;不指定callback时取消该uri的所有监听。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
uri | string | 是 | PhotoAsset的uri, Album的uri或DefaultChangeUri的值。 |
callback | Callback<ChangeData> | 否 | 取消registerChange注册时的callback的监听,不填时,取消该uri的所有监听。注:off指定注册的callback后不会进入此回调。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
console.info('offDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
if (photoAsset !== undefined) {
console.info('photoAsset.displayName : ' + photoAsset.displayName);
}
let onCallback1 = (changeData: photoAccessHelper.ChangeData) => {
console.info('onCallback1 on');
}
let onCallback2 = (changeData: photoAccessHelper.ChangeData) => {
console.info('onCallback2 on');
}
// 注册onCallback1监听。
phAccessHelper.registerChange(photoAsset.uri, false, onCallback1);
// 注册onCallback2监听。
phAccessHelper.registerChange(photoAsset.uri, false, onCallback2);
// 关闭onCallback1监听,onCallback2 继续监听。
phAccessHelper.unRegisterChange(photoAsset.uri, onCallback1);
await photoAccessHelper.MediaAssetChangeRequest.deleteAssets(context, [photoAsset]);
}
createDeleteRequest(uriList: Array<string>, callback: AsyncCallback<void>): void
创建一个弹出框来删除照片,删除的文件进入到回收站,使用callback方式返回结果。
说明:
从API version 10开始支持,从API version 11开始废弃。建议使用MediaAssetChangeRequest.deleteAssets替代。
需要权限:ohos.permission.WRITE_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
uriList | Array<string> | 是 | 待删除的媒体文件uri数组,最大删除数量300。 |
callback | AsyncCallback<void> | 是 | callback返回void。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('createDeleteRequestDemo');
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 asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
if (asset === undefined) {
console.error('asset not exist');
return;
}
phAccessHelper.createDeleteRequest([asset.uri], (err) => {
if (err === undefined) {
console.info('createDeleteRequest successfully');
} else {
console.error(`createDeleteRequest failed with error: ${err.code}, ${err.message}`);
}
});
} catch (err) {
console.error(`fetch failed, error: ${err.code}, ${err.message}`);
}
}
createDeleteRequest(uriList: Array<string>): Promise<void>
创建一个弹出框来删除照片,删除的文件进入到回收站,使用Promise方式返回结果。
说明:
从API version 10开始支持,从API version 11开始废弃。建议使用MediaAssetChangeRequest.deleteAssets替代。
需要权限:ohos.permission.WRITE_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
uriList | Array<string> | 是 | 待删除的媒体文件uri数组,最大删除数量300。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象,返回void。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('createDeleteRequestDemo');
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 asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
if (asset === undefined) {
console.error('asset not exist');
return;
}
await phAccessHelper.createDeleteRequest([asset.uri]);
console.info('createDeleteRequest successfully');
} catch (err) {
console.error(`createDeleteRequest failed with error: ${err.code}, ${err.message}`);
}
}
applyChanges(mediaChangeRequest: MediaChangeRequest): Promise<void>
提交媒体变更请求,使用Promise方式返回结果。
需要权限:ohos.permission.WRITE_IMAGEVIDEO
提交创建资产的变更请求时,使用安全控件调用接口创建媒体资源,无需申请'ohos.permission.WRITE_IMAGEVIDEO'权限,详情请参考开发指南。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mediaChangeRequest | MediaChangeRequest | 是 | 媒体变更请求,支持资产变更请求和相册变更请求。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象,返回void。 |
错误码:
错误码ID | 错误信息 |
---|---|
201 | Permission denied. |
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | System inner fail. |
示例:
该接口依赖于MediaChangeRequest对象,详细代码示例请参见MediaAssetChangeRequest和MediaAlbumChangeRequest中的接口示例。
release(callback: AsyncCallback<void>): void
释放PhotoAccessHelper实例,使用callback方式返回结果。 当后续不需要使用PhotoAccessHelper实例中的方法时调用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | 回调表示成功还是失败。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
13900020 | Invalid argument. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('releaseDemo');
phAccessHelper.release((err) => {
if (err !== undefined) {
console.error(`release failed. error: ${err.code}, ${err.message}`);
} else {
console.info('release ok.');
}
});
}
release(): Promise<void>
释放PhotoAccessHelper实例,使用Promise方式返回结果。 当后续不需要使用PhotoAccessHelper 实例中的方法时调用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象,返回void。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
13900020 | Invalid argument. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('releaseDemo');
try {
await phAccessHelper.release();
console.info('release ok.');
} catch (err) {
console.error(`release failed. error: ${err.code}, ${err.message}`);
}
}
showAssetsCreationDialog(srcFileUris: Array<string>, photoCreationConfigs: Array<PhotoCreationConfig>): Promise<Array<string>>
调用接口拉起保存确认弹窗。用户同意保存后,返回已创建并授予保存权限的uri列表,该列表永久生效,应用可使用该uri写入图片/视频。如果用户拒绝保存,将返回空列表。弹框需要显示应用名称,无法直接获取应用名称,依赖于配置项的label和icon,因此调用此接口时请确保module.json5文件中的abilities标签中配置了label和icon项。
说明: 当传入uri为沙箱路径时,可正常保存图片/视频,但无界面预览。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
srcFileUris | Array<string> | 是 | 需保存到媒体库中的图片/视频文件对应的媒体库uri。 注意: - 一次弹窗最多保存100张图片。 - 仅支持处理图片、视频uri。 - 不支持手动拼接的uri,需调用接口获取,获取方式参考媒体文件uri获取方式。 |
photoCreationConfigs | Array<PhotoCreationConfig> | 是 | 保存图片或视频到媒体库的配置,包括文件名等,与srcFileUris保持一一对应。 |
返回值:
类型 | 说明 |
---|---|
Promise<Array<string>> | Promise对象,返回给应用的媒体库文件uri列表。uri已对应用授权,支持应用写入数据。如果生成uri异常,则返回批量创建错误码。 返回-3006表示不允许出现非法字符;返回-2004表示图片类型和后缀不符;返回-203表示文件操作异常。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | Internal system error. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('ShowAssetsCreationDialogDemo.');
try {
// 获取需要保存到媒体库的位于应用沙箱的图片/视频uri。
let srcFileUris: Array<string> = [
'file://fileUriDemo1' // 实际场景请使用真实的uri。
];
let photoCreationConfigs: Array<photoAccessHelper.PhotoCreationConfig> = [
{
title: 'test2', // 可选。
fileNameExtension: 'jpg',
photoType: photoAccessHelper.PhotoType.IMAGE,
subtype: photoAccessHelper.PhotoSubtype.DEFAULT, // 可选。
}
];
let desFileUris: Array<string> = await phAccessHelper.showAssetsCreationDialog(srcFileUris, photoCreationConfigs);
console.info('showAssetsCreationDialog success, data is ' + desFileUris);
} catch (err) {
console.error('showAssetsCreationDialog failed, errCode is ' + err.code + ', errMsg is ' + err.message);
}
}
createAssetWithShortTermPermission(photoCreationConfig: PhotoCreationConfig): Promise<string>
接口提供给应用调用,支持首次调用后拉起保存确认弹框。在用户同意保存后返回已创建并授予保存权限的uri,支持应用使用uri写入图片/视频; 在用户"同意"后的5min之内,同一个应用再次调用接口,支持无需弹框确认自动返回已授权的uri给应用,支持应用保存图片/视频。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限: ohos.permission.SHORT_TERM_WRITE_IMAGEVIDEO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
photoCreationConfig | PhotoCreationConfig; | 是 | 保存图片/视频到媒体库的配置,包括保存的文件名等。 |
返回值:
类型 | 说明 |
---|---|
Promise<string> | Promise对象,返回给应用的媒体库文件uri。uri已对应用授权,支持应用写入数据。如果生成uri异常,则返回批量创建错误码。 返回-3006表示不允许出现非法字符;返回-2004表示图片类型和后缀不符;返回-203表示文件操作异常。 |
错误码:
错误码ID | 错误信息 |
---|---|
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 |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { fileIo } from '@kit.CoreFileKit';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('createAssetWithShortTermPermissionDemo.');
try {
let photoCreationConfig: photoAccessHelper.PhotoCreationConfig = {
title: '123456',
fileNameExtension: 'jpg',
photoType: photoAccessHelper.PhotoType.IMAGE,
subtype: photoAccessHelper.PhotoSubtype.DEFAULT,
};
let resultUri: string = await phAccessHelper.createAssetWithShortTermPermission(photoCreationConfig);
let resultFile: fileIo.File = fileIo.openSync(resultUri, fileIo.OpenMode.READ_WRITE);
// 实际场景请使用真实的uri和文件大小。
let srcFile: fileIo.File = fileIo.openSync("file://test.jpg", fileIo.OpenMode.READ_ONLY);
let bufSize: number = 2000000;
let readSize: number = 0;
let buf = new ArrayBuffer(bufSize);
let readLen = fileIo.readSync(srcFile.fd, buf, {
offset: readSize,
length: bufSize
});
if (readLen > 0) {
readSize += readLen;
fileIo.writeSync(resultFile.fd, buf, { length: readLen });
}
fileIo.closeSync(srcFile);
fileIo.closeSync(resultFile);
} catch (err) {
console.error('createAssetWithShortTermPermission failed, errCode is ' + err.code + ', errMsg is ' + err.message);
}
}
requestPhotoUrisReadPermission(srcFileUris: Array<string>): Promise<Array<string>>
调用接口给未授权的uri进行授权,返回已创建并授予保存权限的uri列表。原子化服务API: 从API version 14开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
srcFileUris | Array<string> | 是 | 需进行授权的图片/视频文件对应的媒体库uri。 注意: 仅支持处理图片、视频uri。 |
返回值:
类型 | 说明 |
---|---|
Promise<Array<string>> | Promise对象,返回已授权的uri列表。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | Internal system error |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
console.info('requestPhotoUrisReadPermissionDemo.');
try {
let phAccessHelper: photoAccessHelper.PhotoAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
// 获取需要进行授权的图片/视频uri。
let srcFileUris: Array<string> = [
'file://fileUriDemo1' // 实际场景请使用真实的uri。
];
let desFileUris: Array<string> = await phAccessHelper.requestPhotoUrisReadPermission(srcFileUris);
console.info('requestPhotoUrisReadPermission success, data is ' + desFileUris);
} catch (err) {
console.error('requestPhotoUrisReadPermission failed, errCode is ' + err.code + ', errMsg is ' + err.message);
}
}
getSupportedPhotoFormats(photoType: PhotoType): Promise<Array<string>>
接口提供给应用调用,获取媒体库支持的图片或者视频后缀列表。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
photoType | PhotoType | 是 | 媒体文件类型。 |
返回值:
类型 | 说明 |
---|---|
Promise<Array<string>> | Promise对象,返回支持的图片或者视频后缀列表。 |
错误码:
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, photoTypeNumber: number){
console.info('getSupportedPhotoFormatsDemo.');
try {
let outputText: string;
if (photoTypeNumber !== 1 && photoTypeNumber !== 2) {
outputText = 'Does not support querying formats other than images or videos';
return;
}
outputText = 'The supported types are:\n';
let imageFormat = await phAccessHelper.getSupportedPhotoFormats(photoTypeNumber);
let result = "";
for (let i = 0; i < imageFormat.length; i++) {
result += imageFormat[i];
if (i !== imageFormat.length - 1) {
result += ', ';
}
}
outputText += result;
console.info('getSupportedPhotoFormats success, data is ' + outputText);
} catch (error) {
console.error('getSupportedPhotoFormats failed, errCode is', error);
}
}
提供封装文件属性的方法。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
uri | string | 是 | 否 | 媒体文件资源uri(如:file://media/Photo/1/IMG_datetime_0001/displayName.jpg),详情参见用户文件uri介绍中的媒体文件uri 原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。 |
photoType | PhotoType | 是 | 否 | 媒体文件类型。 |
displayName | string | 是 | 否 | 显示文件名,包含后缀名。字符串长度为1~255。 |
get(member: string): MemberType
获取PhotoAsset成员参数的值。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
member | string | 是 | 成员参数名称,在get时,除了'uri'、'media_type'、'subtype'和'display_name'四个属性之外,其他的属性都需要在fetchColumns中填入需要获取的PhotoKeys,例如:get title属性fetchColumns: ['title']。 |
返回值:
类型 | 说明 |
---|---|
MemberType | 获取PhotoAsset成员参数的值。 |
错误码:
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考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(member: string, value: string): void
设置PhotoAsset成员参数。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
member | string | 是 | 成员参数名称例如:PhotoKeys.TITLE。字符串长度为1~255。 |
value | string | 是 | 设置成员参数名称,只能修改PhotoKeys.TITLE的值。title的参数规格为: - 不应包含扩展名。 - 文件名字符串长度为1~255(资产文件名为标题+扩展名)。 - 不允许出现非法字符,包括:. \ / : * ? " ' ` < > | { } [ ] |
错误码:
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考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(callback: AsyncCallback<void>): void
修改文件的元数据,使用callback方式返回异步结果。
需要权限:ohos.permission.WRITE_IMAGEVIDEO
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | callback返回void。 |
错误码:
错误码14000001,请参考 PhotoKeys获取有关文件名的格式和长度要求。
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
13900012 | Permission denied. |
13900020 | Invalid argument. |
14000001 | Invalid display name. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考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(): Promise<void>
修改文件的元数据,使用promise方式返回异步结果。
需要权限:ohos.permission.WRITE_IMAGEVIDEO
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象,返回void。 |
错误码:
错误码14000001,请参考 PhotoKeys获取有关文件名的格式和长度要求。
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
13900012 | Permission denied. |
13900020 | Invalid argument. |
14000001 | Invalid display name. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考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, '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}`);
}
}
getReadOnlyFd(callback: AsyncCallback<number>): void
以只读方式打开当前文件,使用callback方式返回异步结果。
说明:
从API version 10开始支持,从API version 11开始废弃。出于安全考量,不再提供获取正式媒体文件句柄的接口。
注意:使用完毕后调用close释放文件描述符。
需要权限:ohos.permission.READ_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<number> | 是 | callback返回文件描述符。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getReadOnlyFdDemo');
// 需要保证设备中存在可读取图片视频文件。
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(): Promise<number>
以只读方式打开当前文件,使用promise方式返回异步结果。
说明:
从API version 10开始支持,从API version 11开始废弃。出于安全考量,不再提供获取正式媒体文件句柄的接口。
注意:返回的文件描述符在使用完毕后需要调用close进行释放。
需要权限:ohos.permission.READ_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise对象,返回文件描述符。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getReadOnlyFdDemo');
try {
// 需要保证设备中存在可读取图片视频文件。
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();
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}`);
}
}
close(fd: number, callback: AsyncCallback<void>): void
关闭当前文件,使用callback方式返回异步结果。
说明:
从API version 10开始支持,从API version 11开始废弃。出于安全考量,不再提供获取正式媒体文件句柄的接口。对应的close接口一并废弃。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 文件描述符。 |
callback | AsyncCallback<void> | 是 | callback返回void。 |
错误码:
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考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(fd: number): Promise<void>
关闭当前文件,使用promise方式返回异步结果。
说明:
从API version 10开始支持,从API version 11开始废弃。出于安全考量,不再提供获取正式媒体文件句柄的接口。对应的close接口一并废弃。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 文件描述符。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象,返回void。 |
错误码:
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考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(callback: AsyncCallback<image.PixelMap>): void
获取文件的缩略图,使用callback方式返回异步结果。
需要权限:ohos.permission.READ_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<image.PixelMap> | 是 | callback返回缩略图的PixelMap。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考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(size: image.Size, callback: AsyncCallback<image.PixelMap>): void
获取文件的缩略图,传入缩略图尺寸,使用callback方式返回异步结果。
需要权限:ohos.permission.READ_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
size | image.Size | 是 | 缩略图尺寸。 |
callback | AsyncCallback<image.PixelMap> | 是 | callback返回缩略图的PixelMap。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考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 };
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}`);
}
});
}
getThumbnail(size?: image.Size): Promise<image.PixelMap>
获取文件的缩略图,传入缩略图尺寸,使用promise方式返回异步结果。
需要权限:ohos.permission.READ_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
size | image.Size | 否 | 缩略图尺寸。 |
返回值:
类型 | 说明 |
---|---|
Promise<image.PixelMap> | Promise对象,返回缩略图的PixelMap。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考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}`);
});
}
clone(title: string): Promise<PhotoAsset>
克隆资产。可设置文件名,但不支持修改文件类型。
需要权限:ohos.permission.WRITE_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
title | string | 是 | 克隆后资产的标题。参数规格为: - 不应包含扩展名。 - 文件名字符串长度为1~255(资产文件名为标题+扩展名)。 - 不允许出现非法字符,包括:. \ / : * ? " ' ` < > | { } [ ] |
返回值:
类型 | 说明 |
---|---|
Promise<PhotoAsset> | Promise对象,返回PhotoAsset。 |
错误码:
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考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}`);
}
}
图库选择器对象用于支持选择图片、视频等用户场景。使用前,需先创建PhotoViewPicker实例。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
示例:
let photoPicker = new photoAccessHelper.PhotoViewPicker();
select(option?: PhotoSelectOptions) : Promise<PhotoSelectResult>
通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用Promise异步返回形式,传入可选参数PhotoSelectOptions对象,返回PhotoSelectResult对象。
注意:此接口返回的PhotoSelectResult对象中的photoUris具有永久授权,可通过调用photoAccessHelper.getAssets接口去使用,具体使用方式参见用户文件uri介绍中的媒体文件uri的使用方式。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
option | PhotoSelectOptions | 否 | photoPicker选择选项,若无此参数,则默认选择媒体文件类型为图片和视频类型,默认选择媒体文件数量的最大值为50。 |
返回值:
类型 | 说明 |
---|---|
Promise<PhotoSelectResult> | Promise对象。返回photoPicker选择后的结果集 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
13900042 | Unknown error. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
async function example01(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
try {
let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
PhotoSelectOptions.maxSelectNumber = 5;
let photoPicker = new photoAccessHelper.PhotoViewPicker();
photoPicker.select(PhotoSelectOptions).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}`);
}
}
select(option: PhotoSelectOptions, callback: AsyncCallback<PhotoSelectResult>) : void
通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,传入参数PhotoSelectOptions对象,返回PhotoSelectResult对象。
注意:此接口返回的PhotoSelectResult对象中的photoUris具有永久授权,可通过调用photoAccessHelper.getAssets接口去使用,具体使用方式参见用户文件uri介绍中的媒体文件uri的使用方式。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
option | PhotoSelectOptions | 是 | photoPicker选择选项。 |
callback | AsyncCallback<PhotoSelectResult> | 是 | callback 返回photoPicker选择后的结果集。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
13900042 | Unknown error. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
async function example02(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
try {
let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
PhotoSelectOptions.maxSelectNumber = 5;
let photoPicker = new photoAccessHelper.PhotoViewPicker();
photoPicker.select(PhotoSelectOptions, (err: BusinessError, PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => {
if (err) {
console.error(`PhotoViewPicker.select failed with err: ${err.code}, ${err.message}`);
return;
}
console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult));
});
} catch (error) {
let err: BusinessError = error as BusinessError;
console.error(`PhotoViewPicker failed with err: ${err.code}, ${err.message}`);
}
}
select(callback: AsyncCallback<PhotoSelectResult>) : void
通过选择模式拉起photoPicker界面,用户可以选择一个或多个图片/视频。接口采用callback异步返回形式,返回PhotoSelectResult对象。
注意:此接口返回的PhotoSelectResult对象中的photoUris具有永久授权,可通过调用photoAccessHelper.getAssets接口去使用,具体使用方式参见用户文件uri介绍中的媒体文件uri的使用方式。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<PhotoSelectResult> | 是 | callback 返回photoPicker选择后的结果集。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
13900042 | Unknown error. |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
async function example03(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
try {
let photoPicker = new photoAccessHelper.PhotoViewPicker();
photoPicker.select((err: BusinessError, PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => {
if (err) {
console.error(`PhotoViewPicker.select failed with err: ${err.code}, ${err.message}`);
return;
}
console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult));
});
} catch (error) {
let err: BusinessError = error as BusinessError;
console.error(`PhotoViewPicker failed with err: ${err.code}, ${err.message}`);
}
}
文件检索结果集。
getCount(): number
获取文件检索结果中的文件总数。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
返回值:
类型 | 说明 |
---|---|
number | 检索到的文件总数。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
13900020 | Invalid argument. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getCountDemo');
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 fetchCount = fetchResult.getCount();
console.info('fetchCount = ', fetchCount);
}
isAfterLast(): boolean
检查结果集是否指向最后一行。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
返回值:
类型 | 说明 |
---|---|
boolean | 当读到最后一条记录后,后续没有记录返回true,否则返回false。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
13900020 | Invalid argument. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
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 fetchCount = fetchResult.getCount();
console.info('count:' + fetchCount);
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getLastObject();
if (fetchResult.isAfterLast()) {
console.info('photoAsset isAfterLast displayName = ', photoAsset.displayName);
} else {
console.info('photoAsset not isAfterLast.');
}
}
close(): void
释放FetchResult实例并使其失效,无法再调用其他方法。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
13900020 | Invalid argument. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('fetchResultCloseDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
try {
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
fetchResult.close();
console.info('close succeed.');
} catch (err) {
console.error(`close fail. error: ${err.code}, ${err.message}`);
}
}
getFirstObject(callback: AsyncCallback<T>): void
获取文件检索结果中的第一个文件资产。此方法使用callback形式返回结果。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<T> | 是 | 异步获取结果集中的第一个文件资产完成后的回调。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
13900020 | Invalid argument. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getFirstObjectDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
fetchResult.getFirstObject((err, photoAsset) => {
if (photoAsset !== undefined) {
console.info('photoAsset displayName: ', photoAsset.displayName);
} else {
console.error(`photoAsset failed with err:${err.code}, ${err.message}`);
}
});
}
getFirstObject(): Promise<T>
获取文件检索结果中的第一个文件资产。此方法使用promise方式来异步返回。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
返回值:
类型 | 说明 |
---|---|
Promise<T> | Promise对象,返回结果集中第一个对象。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
13900020 | Invalid argument. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getFirstObjectDemo');
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();
console.info('photoAsset displayName: ', photoAsset.displayName);
}
getNextObject(callback: AsyncCallback<T>): void
获取文件检索结果中的下一个文件资产。此方法使用callback形式返回结果。 在调用此方法之前,必须使用isAfterLast()来检查当前位置是否为最后一行。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<T> | 是 | 异步获取结果集中的下一个完成后的回调。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
13900020 | Invalid argument. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getNextObjectDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
await fetchResult.getFirstObject();
if (!fetchResult.isAfterLast()) {
fetchResult.getNextObject((err, photoAsset) => {
if (photoAsset !== undefined) {
console.info('photoAsset displayName: ', photoAsset.displayName);
} else {
console.error(`photoAsset failed with err: ${err.code}, ${err.message}`);
}
});
}
}
getNextObject(): Promise<T>
获取文件检索结果中的下一个文件资产。此方法使用promise方式来异步返回。 在调用此方法之前,必须使用isAfterLast()来检查当前位置是否为最后一行。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
返回值:
类型 | 说明 |
---|---|
Promise<T> | Promise对象,返回结果集中下一个对象。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
13900020 | Invalid argument. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getNextObjectDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
await fetchResult.getFirstObject();
if (!fetchResult.isAfterLast()) {
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getNextObject();
console.info('photoAsset displayName: ', photoAsset.displayName);
}
}
getLastObject(callback: AsyncCallback<T>): void
获取文件检索结果中的最后一个文件资产。此方法使用callback方式来返回。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<T> | 是 | 异步返回结果集中最后一个的回调。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
13900020 | Invalid argument. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getLastObjectDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
fetchResult.getLastObject((err, photoAsset) => {
if (photoAsset !== undefined) {
console.info('photoAsset displayName: ', photoAsset.displayName);
} else {
console.error(`photoAsset failed with err: ${err.code}, ${err.message}`);
}
});
}
getLastObject(): Promise<T>
获取文件检索结果中的最后一个文件资产。此方法使用Promise方式来返回。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
返回值:
类型 | 说明 |
---|---|
Promise<T> | Promise对象,返回结果集中的最后一个对象。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
13900020 | Invalid argument. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getLastObjectDemo');
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.getLastObject();
console.info('photoAsset displayName: ', photoAsset.displayName);
}
getObjectByPosition(index: number, callback: AsyncCallback<T>): void
获取文件检索结果中具有指定索引的文件资产。此方法使用callback来返回。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 是 | 要获取的文件的索引,从0开始。 |
callback | AsyncCallback<T> | 是 | 异步返回指定索引的文件资产的回调。 |
错误码:
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getObjectByPositionDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
fetchResult.getObjectByPosition(0, (err, photoAsset) => {
if (photoAsset !== undefined) {
console.info('photoAsset displayName: ', photoAsset.displayName);
} else {
console.error(`photoAsset failed with err: ${err.code}, ${err.message}`);
}
});
}
getObjectByPosition(index: number): Promise<T>
获取文件检索结果中指定索引的文件资产。此方法返回Promise形式的文件Asset。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 是 | 要获取的文件的索引,从0开始。 |
返回值:
类型 | 说明 |
---|---|
Promise<T> | Promise对象,返回结果集中指定索引的一个对象。 |
错误码:
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getObjectByPositionDemo');
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.getObjectByPosition(0);
console.info('photoAsset displayName: ', photoAsset.displayName);
}
getAllObjects(callback: AsyncCallback<Array<T>>): void
获取文件检索结果中的所有文件资产。此方法使用callback形式返回结果。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<Array<T>> | 是 | 异步获取结果集中的所有文件资产的回调。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
13900020 | Invalid argument. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getAllObjectDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
fetchResult.getAllObjects((err, photoAssetList) => {
if (photoAssetList !== undefined) {
console.info('photoAssetList length: ', photoAssetList.length);
} else {
console.error(`photoAssetList failed with err:${err.code}, ${err.message}`);
}
});
}
getAllObjects(): Promise<Array<T>>
获取文件检索结果中的所有文件资产。此方法使用promise方式来异步返回。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
返回值:
类型 | 说明 |
---|---|
Promise<Array<T>> | Promise对象,返回所有文件资产的数组。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
13900020 | Invalid argument. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getAllObjectDemo');
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 photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects();
console.info('photoAssetList length: ', photoAssetList.length);
}
实体相册
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
albumType | AlbumType | 是 | 否 | 相册类型。 |
albumSubtype | AlbumSubtype | 是 | 否 | 相册子类型。 |
albumName | string | 是 | 预置相册不可写,用户相册可写 | 相册名称。 |
albumUri | string | 是 | 否 | 相册uri。 |
count | number | 是 | 否 | 相册中文件数量。 |
coverUri | string | 是 | 否 | 封面文件uri。 |
imageCount11+ | number | 是 | 否 | 相册中图片数量。 |
videoCount11+ | number | 是 | 否 | 相册中视频数量。 |
getAssets(options: FetchOptions, callback: AsyncCallback<FetchResult<PhotoAsset>>): void
获取相册中的文件。该方法使用callback形式来返回。
需要权限:ohos.permission.READ_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | FetchOptions | 是 | 检索选项。 |
callback | AsyncCallback<FetchResult<PhotoAsset>> | 是 | callback返回图片和视频数据结果集。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('albumGetAssetsDemoCallback');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let albumFetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, albumFetchOptions);
let album: photoAccessHelper.Album = await albumList.getFirstObject();
album.getAssets(fetchOption, (err, albumFetchResult) => {
if (albumFetchResult !== undefined) {
console.info('album getAssets successfully, getCount: ' + albumFetchResult.getCount());
} else {
console.error(`album getAssets failed with error: ${err.code}, ${err.message}`);
}
});
}
getAssets(options: FetchOptions): Promise<FetchResult<PhotoAsset>>
获取相册中的文件。该方法使用Promise来返回。
需要权限:ohos.permission.READ_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | FetchOptions | 是 | 检索选项。 |
返回值:
类型 | 说明 |
---|---|
Promise<FetchResult<PhotoAsset>> | Promise对象,返回图片和视频数据结果集。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
import { BusinessError } from '@kit.BasicServicesKit';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('albumGetAssetsDemoPromise');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let albumFetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, albumFetchOptions);
let album: photoAccessHelper.Album = await albumList.getFirstObject();
album.getAssets(fetchOption).then((albumFetchResult) => {
console.info('album getAssets successfully, getCount: ' + albumFetchResult.getCount());
}).catch((err: BusinessError) => {
console.error(`album getAssets failed with error: ${err.code}, ${err.message}`);
});
}
commitModify(callback: AsyncCallback<void>): void
更新相册属性修改到数据库中。该方法使用callback形式来返回结果。
需要权限:ohos.permission.WRITE_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<void> | 是 | callback返回void。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('albumCommitModifyDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let albumFetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, albumFetchOptions);
let album: photoAccessHelper.Album = await albumList.getFirstObject();
album.albumName = 'hello';
album.commitModify((err) => {
if (err !== undefined) {
console.error(`commitModify failed with error: ${err.code}, ${err.message}`);
} else {
console.info('commitModify successfully');
}
});
}
commitModify(): Promise<void>
更新相册属性修改到数据库中。该方法使用Promise来返回结果。
需要权限:ohos.permission.WRITE_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象,返回void。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
import { BusinessError } from '@kit.BasicServicesKit';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('albumCommitModifyDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let albumFetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, albumFetchOptions);
let album: photoAccessHelper.Album = await albumList.getFirstObject();
album.albumName = 'hello';
album.commitModify().then(() => {
console.info('commitModify successfully');
}).catch((err: BusinessError) => {
console.error(`commitModify failed with error: ${err.code}, ${err.message}`);
});
}
addAssets(assets: Array<PhotoAsset>, callback: AsyncCallback<void>): void
往相册中添加图片或视频前,需预置相册和文件资源。此方法通过callback方式返回结果。
说明:
从API version 10开始支持,从API version 11开始废弃。建议使用MediaAlbumChangeRequest.addAssets替代。
需要权限:ohos.permission.WRITE_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
assets | Array<PhotoAsset> | 是 | 待添加到相册中的图片或视频数组。 |
callback | AsyncCallback<void> | 是 | callback返回void。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
try {
console.info('addAssetsDemoCallback');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
album.addAssets([asset], (err) => {
if (err === undefined) {
console.info('album addAssets successfully');
} else {
console.error(`album addAssets failed with error: ${err.code}, ${err.message}`);
}
});
} catch (err) {
console.error(`addAssetsDemoCallback failed with error: ${err.code}, ${err.message}`);
}
}
addAssets(assets: Array<PhotoAsset>): Promise<void>
向相册添加图片或视频前,需预置相册和文件资源。此方法通过Promise返回结果。
说明:
从API version 10开始支持,从API version 11开始废弃。建议使用MediaAlbumChangeRequest.addAssets替代。
需要权限:ohos.permission.WRITE_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
assets | Array<PhotoAsset> | 是 | 待添加到相册中的图片或视频数组。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象,返回void。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
import { BusinessError } from '@kit.BasicServicesKit';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
try {
console.info('addAssetsDemoPromise');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
album.addAssets([asset]).then(() => {
console.info('album addAssets successfully');
}).catch((err: BusinessError) => {
console.error(`album addAssets failed with error: ${err.code}, ${err.message}`);
});
} catch (err) {
console.error(`addAssetsDemoPromise failed with error: ${err.code}, ${err.message}`);
}
}
removeAssets(assets: Array<PhotoAsset>, callback: AsyncCallback<void>): void
从相册移除图片或视频前,需预置相册和文件资源。该方法以callback形式返回结果。
说明:
从API version 10开始支持,从API version 11开始废弃。建议使用MediaAlbumChangeRequest.removeAssets替代。
需要权限:ohos.permission.WRITE_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
assets | Array<PhotoAsset> | 是 | 相册中待移除的图片或视频数组。 |
callback | AsyncCallback<void> | 是 | callback返回void。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
try {
console.info('removeAssetsDemoCallback');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
album.removeAssets([asset], (err) => {
if (err === undefined) {
console.info('album removeAssets successfully');
} else {
console.error(`album removeAssets failed with error: ${err.code}, ${err.message}`);
}
});
} catch (err) {
console.error(`removeAssetsDemoCallback failed with error: ${err.code}, ${err.message}`);
}
}
removeAssets(assets: Array<PhotoAsset>): Promise<void>
从相册中移除图片或视频前,需预置相册和文件资源。此方法通过Promise返回结果。
说明:
从API version 10开始支持,从API version 11开始废弃。建议使用MediaAlbumChangeRequest.removeAssets替代。
需要权限:ohos.permission.WRITE_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
assets | Array<PhotoAsset> | 是 | 相册中待移除的图片或视频数组。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象,返回void。 |
错误码:
错误码13900012,请参考开发准备。
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
import { BusinessError } from '@kit.BasicServicesKit';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
try {
console.info('removeAssetsDemoPromise');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOption: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption);
let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
album.removeAssets([asset]).then(() => {
console.info('album removeAssets successfully');
}).catch((err: BusinessError) => {
console.error(`album removeAssets failed with error: ${err.code}, ${err.message}`);
});
} catch (err) {
console.error(`removeAssetsDemoPromise failed with error: ${err.code}, ${err.message}`);
}
}
资产变更请求。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
constructor(asset: PhotoAsset)
构造函数,用于初始化资产变更请求。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
asset | PhotoAsset | 是 | 需要变更的资产。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('MediaAssetChangeRequest constructorDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(photoAsset);
}
static createImageAssetRequest(context: Context, fileUri: string): MediaAssetChangeRequest
创建图片资产变更请求。
指定待创建资产的数据来源,可参考FileUri。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 传入Ability实例的上下文。 |
fileUri | string | 是 | 图片资产的数据来源,在应用沙箱下的uri。示例fileUri:'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg'。 |
返回值:
类型 | 说明 |
---|---|
MediaAssetChangeRequest | 返回创建资产的变更请求。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
13900002 | The file corresponding to the URI is not in the app sandbox. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
console.info('createImageAssetRequestDemo');
try {
// 需要确保fileUri对应的资源存在。
let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg';
let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createImageAssetRequest(context, fileUri);
await phAccessHelper.applyChanges(assetChangeRequest);
console.info('apply createImageAssetRequest successfully');
} catch (err) {
console.error(`createImageAssetRequestDemo failed with error: ${err.code}, ${err.message}`);
}
}
static createVideoAssetRequest(context: Context, fileUri: string): MediaAssetChangeRequest
创建视频资产变更请求。
指定待创建资产的数据来源,可参考FileUri。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 传入Ability实例的上下文。 |
fileUri | string | 是 | 视频资产的数据来源,在应用沙箱下的uri。示例fileUri:'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.mp4'。 |
返回值:
类型 | 说明 |
---|---|
MediaAssetChangeRequest | 返回创建资产的变更请求。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
13900002 | The file corresponding to the URI is not in the app sandbox. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
console.info('createVideoAssetRequestDemo');
try {
// 需要确保fileUri对应的资源存在。
let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.mp4';
let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createVideoAssetRequest(context, fileUri);
await phAccessHelper.applyChanges(assetChangeRequest);
console.info('apply createVideoAssetRequest successfully');
} catch (err) {
console.error(`createVideoAssetRequestDemo failed with error: ${err.code}, ${err.message}`);
}
}
static createAssetRequest(context: Context, photoType: PhotoType, extension: string, options?: CreateOptions): MediaAssetChangeRequest
指定文件类型和扩展名,创建资产变更请求。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 传入Ability实例的上下文。 |
photoType | PhotoType | 是 | 待创建的文件类型,IMAGE或者VIDEO类型。 |
extension | string | 是 | 文件扩展名,例如:'jpg'。 |
options | CreateOptions | 否 | 创建选项,例如:{title: 'testPhoto'}。 |
返回值:
类型 | 说明 |
---|---|
MediaAssetChangeRequest | 返回创建资产的变更请求。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
console.info('createAssetRequestDemo');
try {
let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE;
let extension: string = 'jpg';
let options: photoAccessHelper.CreateOptions = {
title: 'testPhoto'
}
let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, photoType, extension, options);
// 需要确保fileUri对应的资源存在。
let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg';
assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, fileUri);
await phAccessHelper.applyChanges(assetChangeRequest);
console.info('apply createAssetRequest successfully');
} catch (err) {
console.error(`createAssetRequestDemo failed with error: ${err.code}, ${err.message}`);
}
}
static deleteAssets(context: Context, assets: Array<PhotoAsset>): Promise<void>
删除媒体文件,删除的文件进入到回收站,使用Promise方式返回结果。
需要权限:ohos.permission.WRITE_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 传入Ability实例的上下文。 |
assets | Array<PhotoAsset> | 是 | 待删除的媒体文件数组。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象,返回void。 |
错误码:
错误码ID | 错误信息 |
---|---|
201 | Permission denied. |
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
console.info('deleteAssetsDemo');
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 photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects();
await photoAccessHelper.MediaAssetChangeRequest.deleteAssets(context, photoAssetList);
console.info('deleteAssets successfully');
} catch (err) {
console.error(`deleteAssetsDemo failed with error: ${err.code}, ${err.message}`);
}
}
static deleteAssets(context: Context, uriList: Array<string>): Promise<void>
删除媒体文件,删除的文件进入到回收站,使用Promise方式返回结果。
需要权限:ohos.permission.WRITE_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 传入Ability实例的上下文。 |
uriList | Array<string> | 是 | 待删除的媒体文件uri数组。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象,返回void。 |
错误码:
错误码ID | 错误信息 |
---|---|
201 | Permission denied. |
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000002 | The uri format is incorrect or does not exist. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
console.info('deleteAssetsDemo');
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 asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
await photoAccessHelper.MediaAssetChangeRequest.deleteAssets(context, [asset.uri]);
console.info('deleteAssets successfully');
} catch (err) {
console.error(`deleteAssetsDemo failed with error: ${err.code}, ${err.message}`);
}
}
getAsset(): PhotoAsset
获取当前资产变更请求中的资产。
注意:对于创建资产的变更请求,在调用applyChanges提交生效之前,该接口返回null。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
返回值:
类型 | 说明 |
---|---|
PhotoAsset | 返回当前资产变更请求中的资产。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
console.info('getAssetDemo');
try {
// 需要确保fileUri对应的资源存在。
let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg';
let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createImageAssetRequest(context, fileUri);
await phAccessHelper.applyChanges(assetChangeRequest);
let asset: photoAccessHelper.PhotoAsset = assetChangeRequest.getAsset();
console.info('create asset successfully with uri = ' + asset.uri);
} catch (err) {
console.error(`getAssetDemo failed with error: ${err.code}, ${err.message}`);
}
}
setTitle(title: string): void
修改媒体资产的标题。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
title | string | 是 | 待修改的资产标题。 |
title参数规格为:
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
import { BusinessError } from '@kit.BasicServicesKit';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('setTitleDemo');
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 = await fetchResult.getFirstObject();
let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
let newTitle: string = 'newTitle';
assetChangeRequest.setTitle(newTitle);
phAccessHelper.applyChanges(assetChangeRequest).then(() => {
console.info('apply setTitle successfully');
}).catch((err: BusinessError) => {
console.error(`apply setTitle failed with error: ${err.code}, ${err.message}`);
});
}
getWriteCacheHandler(): Promise<number>
获取临时文件写句柄。
注意:对于同一个资产变更请求,不支持在成功获取临时文件写句柄后,重复调用该接口。
需要权限:ohos.permission.WRITE_IMAGEVIDEO
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise对象,返回临时文件写句柄。 |
错误码:
错误码ID | 错误信息 |
---|---|
201 | Permission denied. |
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
14000011 | System inner fail. |
14000016 | Operation Not Support. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { fileIo } from '@kit.CoreFileKit';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
console.info('getWriteCacheHandlerDemo');
try {
let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.VIDEO;
let extension: string = 'mp4';
let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, photoType, extension);
let fd: number = await assetChangeRequest.getWriteCacheHandler();
console.info('getWriteCacheHandler successfully');
// write date into fd..
await fileIo.close(fd);
await phAccessHelper.applyChanges(assetChangeRequest);
} catch (err) {
console.error(`getWriteCacheHandlerDemo failed with error: ${err.code}, ${err.message}`);
}
}
addResource(type: ResourceType, fileUri: string): void
通过fileUri从应用沙箱添加资源。
注意:对于同一个资产变更请求,成功添加资源后不支持重复调用该接口。对于动态照片,可调用两次该接口分别添加图片和视频资源。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | ResourceType | 是 | 待添加资源的类型。 |
fileUri | string | 是 | 待添加资源的数据来源,在应用沙箱下的uri。示例fileUri:'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg'。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
13900002 | The file corresponding to the URI is not in the app sandbox. |
14000011 | System inner fail. |
14000016 | Operation Not Support. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
console.info('addResourceByFileUriDemo');
try {
let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE;
let extension: string = 'jpg';
let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, photoType, extension);
// 需要确保fileUri对应的资源存在。
let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg';
assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, fileUri);
await phAccessHelper.applyChanges(assetChangeRequest);
console.info('addResourceByFileUri successfully');
} catch (err) {
console.error(`addResourceByFileUriDemo failed with error: ${err.code}, ${err.message}`);
}
}
addResource(type: ResourceType, data: ArrayBuffer): void
通过ArrayBuffer数据添加资源。
注意:对于同一个资产变更请求,成功添加资源后不支持重复调用该接口。对于动态照片,可调用两次该接口分别添加图片和视频资源。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | ResourceType | 是 | 待添加资源的类型。 |
data | ArrayBuffer | 是 | 待添加资源的数据。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | System inner fail. |
14000016 | Operation Not Support. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
console.info('addResourceByArrayBufferDemo');
try {
let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE;
let extension: string = 'jpg';
let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, photoType, extension);
let buffer: ArrayBuffer = new ArrayBuffer(2048);
assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, buffer);
await phAccessHelper.applyChanges(assetChangeRequest);
console.info('addResourceByArrayBuffer successfully');
} catch (err) {
console.error(`addResourceByArrayBufferDemo failed with error: ${err.code}, ${err.message}`);
}
}
saveCameraPhoto(): void
保存相机拍摄的照片。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
错误码:
接口抛出错误码的详细介绍请参见文件管理错误码。
错误码ID | 错误信息 |
---|---|
14000011 | System inner fail. |
14000016 | Operation Not Support. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, asset: photoAccessHelper.PhotoAsset) {
console.info('saveCameraPhotoDemo');
try {
let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
assetChangeRequest.saveCameraPhoto();
await phAccessHelper.applyChanges(assetChangeRequest);
console.info('apply saveCameraPhoto successfully');
} catch (err) {
console.error(`apply saveCameraPhoto failed with error: ${err.code}, ${err.message}`);
}
}
saveCameraPhoto(imageFileType: ImageFileType): void
保存相机拍摄的照片。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
imageFileType | ImageFileType | 是 | 需要保存的类型。 |
错误码:
接口抛出错误码的详细介绍请参见文件管理错误码。
错误码ID | 错误信息 |
---|---|
14000011 | System inner fail. |
14000016 | Operation Not Support. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
import { image } from '@kit.ImageKit';
async function example(context: Context, asset: photoAccessHelper.PhotoAsset) {
console.info('saveCameraPhotoDemo');
try {
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
assetChangeRequest.saveCameraPhoto(photoAccessHelper.ImageFileType.JPEG);
await phAccessHelper.applyChanges(assetChangeRequest);
console.info('apply saveCameraPhoto successfully');
} catch (err) {
console.error(`apply saveCameraPhoto failed with error: ${err.code}, ${err.message}`);
}
}
discardCameraPhoto(): void
删除相机拍摄的照片。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
错误码:
接口抛出错误码的详细介绍请参见文件管理错误码。
错误码ID | 错误信息 |
---|---|
14000011 | Internal system error. |
14000016 | Operation Not Support. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, asset: photoAccessHelper.PhotoAsset) {
console.info('discardCameraPhotoDemo');
try {
let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
assetChangeRequest.discardCameraPhoto();
await phAccessHelper.applyChanges(assetChangeRequest);
console.info('apply discardCameraPhoto successfully');
} catch (err) {
console.error(`apply discardCameraPhoto failed with error: ${err.code}, ${err.message}`);
}
}
setOrientation(orientation: number): void
修改图片的旋转角度。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
orientation | number | 是 | 待修改的图片旋转角度,且只能为0、90、180、270。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | Internal system error. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
import { BusinessError } from '@kit.BasicServicesKit';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('setOrientationDemo');
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 = await fetchResult.getFirstObject();
let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset);
assetChangeRequest.setOrientation(90);
phAccessHelper.applyChanges(assetChangeRequest).then(() => {
console.info('apply setOrientation successfully');
}).catch((err: BusinessError) => {
console.error(`apply setOrientation failed with error: ${err.code}, ${err.message}`);
});
}
相册变更请求。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
constructor(album: Album)
构造函数用于初始化新创建的对象。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
album | Album | 是 | 需要变更的相册。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('MediaAlbumChangeRequest constructorDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions);
let album: photoAccessHelper.Album = await fetchResult.getFirstObject();
let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
}
getAlbum(): Album
获取当前相册变更请求中的相册。
注意:对于创建相册的变更请求,在调用applyChanges提交生效之前,该接口返回null。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
返回值:
类型 | 说明 |
---|---|
Album | 返回当前相册变更请求中的相册。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('getAlbumDemo');
try {
// 请确保图库内存在用户相册。
let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
let changeRequestAlbum: photoAccessHelper.Album = albumChangeRequest.getAlbum();
console.info('change request album uri: ' + changeRequestAlbum.albumUri);
} catch (err) {
console.error(`getAlbumDemo failed with error: ${err.code}, ${err.message}`);
}
}
setAlbumName(name: string): void
设置相册名称。
相册名参数规格:
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 待设置的相册名称。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('setAlbumNameDemo');
try {
let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
let newAlbumName: string = 'newAlbumName' + new Date().getTime();
albumChangeRequest.setAlbumName(newAlbumName);
await phAccessHelper.applyChanges(albumChangeRequest);
console.info('setAlbumName successfully');
} catch (err) {
console.error(`setAlbumNameDemo failed with error: ${err.code}, ${err.message}`);
}
}
addAssets(assets: Array<PhotoAsset>): void
向相册中添加资产。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
assets | Array<PhotoAsset> | 是 | 待添加到相册中的资产数组。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | System inner fail. |
14000016 | Operation Not Support. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('addAssetsDemo');
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 asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
albumChangeRequest.addAssets([asset]);
await phAccessHelper.applyChanges(albumChangeRequest);
console.info('addAssets successfully');
} catch (err) {
console.error(`addAssetsDemo failed with error: ${err.code}, ${err.message}`);
}
}
removeAssets(assets: Array<PhotoAsset>): void
从相册中移除资产。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
assets | Array<PhotoAsset> | 是 | 待从相册中移除的资产数组。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | System inner fail. |
14000016 | Operation Not Support. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
console.info('removeAssetsDemo');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
try {
let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC);
let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions);
let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album);
albumChangeRequest.removeAssets([asset]);
await phAccessHelper.applyChanges(albumChangeRequest);
console.info('removeAssets successfully');
} catch (err) {
console.error(`removeAssetsDemo failed with error: ${err.code}, ${err.message}`);
}
}
媒体资产管理类,管理媒体资源读取。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
static requestImage(context: Context, asset: PhotoAsset, requestOptions: RequestOptions, dataHandler: MediaAssetDataHandler<image.ImageSource>): Promise<string>
根据不同的策略模式,请求图片资源。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.READ_IMAGEVIDEO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 传入Ability实例的上下文。 |
asset | PhotoAsset | 是 | 待请求的的媒体文件对象。 |
requestOptions | RequestOptions | 是 | 图片请求策略模式配置项。 |
dataHandler | MediaAssetDataHandler<image.ImageSource> | 是 | 媒体资源处理器,请求完成时触发回调。 |
返回值:
类型 | 说明 |
---|---|
Promise<string> | Promise对象,返回请求id,可用于cancelRequest取消请求。 |
错误码:
错误码ID | 错误信息 |
---|---|
201 | Permission denied |
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
import { image } from '@kit.ImageKit';
class MediaHandler implements photoAccessHelper.MediaAssetDataHandler<image.ImageSource> {
onDataPrepared(data: image.ImageSource) {
if (data === undefined) {
console.error('Error occurred when preparing data');
return;
}
console.info('on image data prepared');
}
}
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
console.info('requestImage');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let requestOptions: photoAccessHelper.RequestOptions = {
deliveryMode: photoAccessHelper.DeliveryMode.HIGH_QUALITY_MODE,
}
const handler = new MediaHandler();
phAccessHelper.getAssets(fetchOptions, async (err, fetchResult) => {
console.info('fetchResult success');
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
await photoAccessHelper.MediaAssetManager.requestImage(context, photoAsset, requestOptions, handler);
console.info('requestImage successfully');
});
}
static requestImageData(context: Context, asset: PhotoAsset, requestOptions: RequestOptions, dataHandler: MediaAssetDataHandler<ArrayBuffer>): Promise<string>
根据不同的策略模式,请求图片资源数据。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.READ_IMAGEVIDEO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 传入Ability实例的上下文。 |
asset | PhotoAsset | 是 | 待请求的的媒体文件对象。 |
requestOptions | RequestOptions | 是 | 图片请求策略模式配置项。 |
dataHandler | MediaAssetDataHandler<ArrayBuffer> | 是 | 媒体资源处理器,当所请求的图片资源准备完成时会触发回调。 |
返回值:
类型 | 说明 |
---|---|
Promise<string> | Promise对象,返回请求id,可用于cancelRequest取消请求。 |
错误码:
错误码ID | 错误信息 |
---|---|
201 | Permission denied |
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
class MediaDataHandler implements photoAccessHelper.MediaAssetDataHandler<ArrayBuffer> {
onDataPrepared(data: ArrayBuffer) {
if (data === undefined) {
console.error('Error occurred when preparing data');
return;
}
console.info('on image data prepared');
}
}
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
console.info('requestImageData');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let requestOptions: photoAccessHelper.RequestOptions = {
deliveryMode: photoAccessHelper.DeliveryMode.HIGH_QUALITY_MODE,
}
const handler = new MediaDataHandler();
phAccessHelper.getAssets(fetchOptions, async (err, fetchResult) => {
console.info('fetchResult success');
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
await photoAccessHelper.MediaAssetManager.requestImageData(context, photoAsset, requestOptions, handler);
console.info('requestImageData successfully');
});
}
static requestMovingPhoto(context: Context, asset: PhotoAsset, requestOptions: RequestOptions, dataHandler: MediaAssetDataHandler<MovingPhoto>): Promise<string>
根据不同的策略模式,请求动态照片对象。动态照片对象可用于请求动态照片的资源数据。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.READ_IMAGEVIDEO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 传入Ability实例的上下文。 |
asset | PhotoAsset | 是 | 待请求的的媒体文件对象。 |
requestOptions | RequestOptions | 是 | 图片请求策略模式配置项。 |
dataHandler | MediaAssetDataHandler<MovingPhoto> | 是 | 媒体资源处理器,当所请求的图片资源准备完成时会触发回调。 |
返回值:
类型 | 说明 |
---|---|
Promise<string> | Promise对象,返回请求id,可用于cancelRequest取消请求。 |
错误码:
错误码ID | 错误信息 |
---|---|
201 | Permission denied |
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
801 | Capability not supported. |
14000011 | System inner fail |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
class MovingPhotoHandler implements photoAccessHelper.MediaAssetDataHandler<photoAccessHelper.MovingPhoto> {
async onDataPrepared(movingPhoto: photoAccessHelper.MovingPhoto) {
if (movingPhoto === undefined) {
console.error('Error occurred when preparing data');
return;
}
console.info("moving photo acquired successfully, uri: " + movingPhoto.getUri());
}
}
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
predicates.equalTo(photoAccessHelper.PhotoKeys.PHOTO_SUBTYPE, photoAccessHelper.PhotoSubtype.MOVING_PHOTO);
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
// 请确保图库内存在动态照片。
let assetResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
let asset: photoAccessHelper.PhotoAsset = await assetResult.getFirstObject();
let requestOptions: photoAccessHelper.RequestOptions = {
deliveryMode: photoAccessHelper.DeliveryMode.FAST_MODE,
}
const handler = new MovingPhotoHandler();
try {
let requestId: string = await photoAccessHelper.MediaAssetManager.requestMovingPhoto(context, asset, requestOptions, handler);
console.info("moving photo requested successfully, requestId: " + requestId);
} catch (err) {
console.error(`failed to request moving photo, error code is ${err.code}, message is ${err.message}`);
}
}
static requestVideoFile(context: Context, asset: PhotoAsset, requestOptions: RequestOptions, fileUri: string, dataHandler: MediaAssetDataHandler<boolean>): Promise<string>
根据不同的策略模式,请求视频资源数据到沙箱路径。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.READ_IMAGEVIDEO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 传入Ability实例的上下文。 |
asset | PhotoAsset | 是 | 待请求的的媒体文件对象。 |
requestOptions | RequestOptions | 是 | 视频请求策略模式配置项。 |
fileUri | string | 是 | 目标写入沙箱路径uri。示例fileUri:'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.mp4'。 |
dataHandler | MediaAssetDataHandler<boolean> | 是 | 媒体资源处理器,当所请求的视频资源写入完成时会触发回调。 |
返回值:
类型 | 说明 |
---|---|
Promise<string> | Promise对象,返回请求id,可用于cancelRequest取消请求。 |
错误码:
错误码ID | 错误信息 |
---|---|
201 | Permission denied |
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
80115+ | Capability not supported. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
class MediaDataHandler implements photoAccessHelper.MediaAssetDataHandler<boolean> {
onDataPrepared(data: boolean) {
console.info('on video request status prepared');
}
}
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
console.info('requestVideoFile');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let requestOptions: photoAccessHelper.RequestOptions = {
deliveryMode: photoAccessHelper.DeliveryMode.HIGH_QUALITY_MODE,
}
const handler = new MediaDataHandler();
let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.mp4';
phAccessHelper.getAssets(fetchOptions, async (err, fetchResult) => {
console.info('fetchResult success');
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
await photoAccessHelper.MediaAssetManager.requestVideoFile(context, photoAsset, requestOptions, fileUri, handler);
console.info('requestVideoFile successfully');
});
}
static cancelRequest(context: Context, requestId: string): Promise<void>
取消未触发回调的资产内容请求。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.READ_IMAGEVIDEO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 传入Ability实例的上下文。 |
requestId | string | 是 | 需要取消的请求id,requestImage等接口返回的有效请求id。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象,返回void。 |
错误码:
错误码ID | 错误信息 |
---|---|
201 | Permission denied |
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | System inner fail |
示例:
import { dataSharePredicates } from '@kit.ArkData';
async function example(context: Context) {
try {
let requestId: string = 'xxx-xxx'; // 应用需使用requestImage等接口返回的有效requestId
await photoAccessHelper.MediaAssetManager.cancelRequest(context, requestId);
console.info("request cancelled successfully");
} catch (err) {
console.error(`cancelRequest failed with error: ${err.code}, ${err.message}`);
}
}
static loadMovingPhoto(context: Context, imageFileUri: string, videoFileUri: string): Promise<MovingPhoto>
加载应用沙箱的动态照片。
原子化服务API: 从API version 14开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 传入AbilityContext或者UIExtensionContext的实例。 |
imageFileUri | string | 是 | 应用沙箱动态照片的图片uri。 示例:'file://com.example.temptest/data/storage/el2/base/haps/ImageFile.jpg' |
videoFileUri | string | 是 | 应用沙箱动态照片的视频uri。 示例:'file://com.example.temptest/data/storage/el2/base/haps/VideoFile.mp4' |
返回值:
类型 | 说明 |
---|---|
Promise<MovingPhoto> | Promise对象,返回MovingPhoto实例。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | Internal system error. |
示例:
async function example(context: Context) {
try {
let imageFileUri: string = 'file://com.example.temptest/data/storage/el2/base/haps/ImageFile.jpg'; // 应用沙箱动态照片的图片uri。
let videoFileUri: string = 'file://com.example.temptest/data/storage/el2/base/haps/VideoFile.mp4'; // 应用沙箱动态照片的视频uri。
let movingPhoto: photoAccessHelper.MovingPhoto = await photoAccessHelper.MediaAssetManager.loadMovingPhoto(context, imageFileUri, videoFileUri);
} catch (err) {
console.error(`loadMovingPhoto failed with error: ${err.code}, ${err.message}`);
}
}
static quickRequestImage(context: Context, asset: PhotoAsset, requestOptions: RequestOptions, dataHandler: QuickImageDataHandler<image.Picture>): Promise<string>
根据不同的策略模式,快速请求图片资源。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.READ_IMAGEVIDEO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 传入Ability实例的上下文。 |
asset | PhotoAsset | 是 | 待请求的的媒体文件对象。 |
requestOptions | RequestOptions | 是 | 图片请求策略模式配置项。 |
dataHandler | QuickImageDataHandler<image.Picture> | 是 | 媒体资源处理器,当所请求的图片资源准备完成时会触发回调。 |
返回值:
类型 | 说明 |
---|---|
Promise<string> | Promise对象,返回请求id,可用于cancelRequest取消请求。 |
错误码:
错误码ID | 错误信息 |
---|---|
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. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
import { image } from '@kit.ImageKit';
class MediaHandler implements photoAccessHelper.QuickImageDataHandler<image.Picture> {
onDataPrepared(data: image.Picture, imageSource: image.ImageSource, map: Map<string, string>) {
console.info('on image data prepared');
}
}
async function example(context: Context) {
console.info('quickRequestImage');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
let requestOptions: photoAccessHelper.RequestOptions = {
deliveryMode: photoAccessHelper.DeliveryMode.HIGH_QUALITY_MODE,
}
const handler = new MediaHandler();
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
phAccessHelper.getAssets(fetchOptions, async (err, fetchResult) => {
console.info('fetchResult success');
let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
await photoAccessHelper.MediaAssetManager.quickRequestImage(context, photoAsset, requestOptions, handler);
console.info('quickRequestImage successfully');
});
}
媒体资源处理器,应用在onDataPrepared方法中可自定义媒体资源处理逻辑。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
onDataPrepared(data: T, map?: Map<string, string>): void
媒体资源就绪通知,系统在资源准备就绪时回调此方法。若资源准备出错,回调的data为undefined。资源请求与回调一一对应。 T支持ArrayBuffer, ImageSource, MovingPhoto和boolean四种数据类型。其中,ArrayBuffer表示图片/视频资源数据,ImageSource表示图片源,MovingPhoto表示动态照片对象,boolean表示图片/视频资源是否成功写入应用沙箱。
map支持返回的信息:
map键名 | 值说明 |
---|---|
'quality' | 图片质量。高质量为'high',低质量为'low'。 |
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
data | T | 是 | 已就绪的图片资源数据。泛型,支持ArrayBuffer, ImageSource, MovingPhoto和boolean四种数据类型。 |
map12+ | Map<string, string> | 否 | 用于获取图片资源的额外信息,如图片质量。当前仅支持'quality'。 |
示例
import { image } from '@kit.ImageKit';
class MediaHandler implements photoAccessHelper.MediaAssetDataHandler<image.ImageSource> {
onDataPrepared = (data: image.ImageSource, map: Map<string, string>) => {
if (data === undefined) {
console.error('Error occurred when preparing data');
return;
}
// 自定义对ImageSource的处理逻辑。
console.info('on image data prepared, photo quality is ' + map['quality']);
}
}
class MediaDataHandler implements photoAccessHelper.MediaAssetDataHandler<ArrayBuffer> {
onDataPrepared = (data: ArrayBuffer, map: Map<string, string>) => {
if (data === undefined) {
console.error('Error occurred when preparing data');
return;
}
// 自定义对ArrayBuffer的处理逻辑。
console.info('on image data prepared, photo quality is ' + map['quality']);
}
}
class MovingPhotoHandler implements photoAccessHelper.MediaAssetDataHandler<photoAccessHelper.MovingPhoto> {
onDataPrepared = (data: photoAccessHelper.MovingPhoto, map: Map<string, string>) => {
if (data === undefined) {
console.error('Error occurred when preparing data');
return;
}
// 自定义对MovingPhoto的处理逻辑。
console.info('on image data prepared, photo quality is ' + map['quality']);
}
}
媒体资源处理器,应用在onDataPrepared方法中可自定义媒体资源处理逻辑。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
onDataPrepared(data: T, imageSource: image.ImageSource, map: Map<string, string>): void
当请求的图片资源准备就绪时,系统会回调媒体资源就绪通知方法。如果资源准备出错,回调的data将为undefined。
map支持返回的信息:
map键名 | 值说明 |
---|---|
'quality' | 图片质量。高质量为'high',低质量为'low'。 |
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
data | T | 是 | 已就绪的图片资源数据。泛型,支持Picture数据类型。 |
imageSource | image.ImageSource | 是 | 已就绪的图片资源数据。 |
map13+ | Map<string, string> | 是 | 用于获取图片资源的额外信息,如图片质量。仅支持'quality'。 |
示例
import { image } from '@kit.ImageKit';
class MediaHandler implements photoAccessHelper.QuickImageDataHandler<image.Picture> {
onDataPrepared(data: image.Picture, imageSource: image.ImageSource, map: Map<string, string>) {
console.info('on image data prepared');
}
}
动态照片对象。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
getUri(): string
获取动态照片的uri。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
返回值:
类型 | 说明 |
---|---|
string | 动态照片的uri。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
14000011 | System inner fail. |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
class MovingPhotoHandler implements photoAccessHelper.MediaAssetDataHandler<photoAccessHelper.MovingPhoto> {
async onDataPrepared(movingPhoto: photoAccessHelper.MovingPhoto) {
if (movingPhoto === undefined) {
console.error('Error occurred when preparing data');
return;
}
console.info("moving photo acquired successfully, uri: " + movingPhoto.getUri());
}
}
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
predicates.equalTo(photoAccessHelper.PhotoKeys.PHOTO_SUBTYPE, photoAccessHelper.PhotoSubtype.MOVING_PHOTO);
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
// 请确保图库内存在动态照片。
let assetResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
let asset: photoAccessHelper.PhotoAsset = await assetResult.getFirstObject();
let requestOptions: photoAccessHelper.RequestOptions = {
deliveryMode: photoAccessHelper.DeliveryMode.FAST_MODE,
}
const handler = new MovingPhotoHandler();
try {
let requestId: string = await photoAccessHelper.MediaAssetManager.requestMovingPhoto(context, asset, requestOptions, handler);
console.info("moving photo requested successfully, requestId: " + requestId);
} catch (err) {
console.error(`failed to request moving photo, error code is ${err.code}, message is ${err.message}`);
}
}
requestContent(imageFileUri: string, videoFileUri: string): Promise<void>
同时请求动态照片的图片内容和视频内容,并写入参数指定的对应的uri中。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.READ_IMAGEVIDEO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
imageFileUri | string | 是 | 待写入动态照片图片内容的uri。示例imageFileUri为:"file://com.example.temptest/data/storage/el2/base/haps/ImageFile.jpg"。 |
videoFileUri | string | 是 | 待写入动态照片视频内容的uri。示例videoFileUri为:"file://com.example.temptest/data/storage/el2/base/haps/VideoFile.mp4"。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象,返回void。 |
错误码:
错误码ID | 错误信息 |
---|---|
201 | Permission denied |
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | System inner fail |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
class MovingPhotoHandler implements photoAccessHelper.MediaAssetDataHandler<photoAccessHelper.MovingPhoto> {
async onDataPrepared(movingPhoto: photoAccessHelper.MovingPhoto) {
if (movingPhoto === undefined) {
console.error('Error occurred when preparing data');
return;
}
// 应用需要确保待写入的uri是有效的。
let imageFileUri: string = "file://com.example.temptest/data/storage/el2/base/haps/ImageFile.jpg";
let videoFileUri: string = "file://com.example.temptest/data/storage/el2/base/haps/VideoFile.mp4";
try {
await movingPhoto.requestContent(imageFileUri, videoFileUri);
console.log("moving photo contents retrieved successfully");
} catch (err) {
console.error(`failed to retrieve contents of moving photo, error code is ${err.code}, message is ${err.message}`);
}
}
}
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
predicates.equalTo(photoAccessHelper.PhotoKeys.PHOTO_SUBTYPE, photoAccessHelper.PhotoSubtype.MOVING_PHOTO);
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
// 请确保图库内存在动态照片。
let assetResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
let asset: photoAccessHelper.PhotoAsset = await assetResult.getFirstObject();
let requestOptions: photoAccessHelper.RequestOptions = {
deliveryMode: photoAccessHelper.DeliveryMode.FAST_MODE,
}
const handler = new MovingPhotoHandler();
try {
let requestId: string = await photoAccessHelper.MediaAssetManager.requestMovingPhoto(context, asset, requestOptions, handler);
console.info("moving photo requested successfully, requestId: " + requestId);
} catch (err) {
console.error(`failed to request moving photo, error code is ${err.code}, message is ${err.message}`);
}
}
requestContent(resourceType: ResourceType, fileUri: string): Promise<void>
请求指定资源类型的动态照片内容,并写入参数指定的uri中。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.READ_IMAGEVIDEO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
resourceType | ResourceType | 是 | 所请求动态照片内容的资源类型。 |
fileUri | string | 是 | 待写入动态照片内容的uri。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | Promise对象,返回void。 |
错误码:
错误码ID | 错误信息 |
---|---|
201 | Permission denied |
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | System inner fail |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
class MovingPhotoHandler implements photoAccessHelper.MediaAssetDataHandler<photoAccessHelper.MovingPhoto> {
async onDataPrepared(movingPhoto: photoAccessHelper.MovingPhoto) {
if (movingPhoto === undefined) {
console.error('Error occurred when preparing data');
return;
}
// 应用需要确保待写入的uri是有效的。
let imageFileUri: string = "file://com.example.temptest/data/storage/el2/base/haps/ImageFile.jpg";
try {
await movingPhoto.requestContent(photoAccessHelper.ResourceType.IMAGE_RESOURCE, imageFileUri);
console.log("moving photo image content retrieved successfully");
} catch (err) {
console.error(`failed to retrieve image content of moving photo, error code is ${err.code}, message is ${err.message}`);
}
}
}
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
predicates.equalTo(photoAccessHelper.PhotoKeys.PHOTO_SUBTYPE, photoAccessHelper.PhotoSubtype.MOVING_PHOTO);
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
// 请确保图库内存在动态照片。
let assetResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
let asset: photoAccessHelper.PhotoAsset = await assetResult.getFirstObject();
let requestOptions: photoAccessHelper.RequestOptions = {
deliveryMode: photoAccessHelper.DeliveryMode.FAST_MODE,
}
const handler = new MovingPhotoHandler();
try {
let requestId: string = await photoAccessHelper.MediaAssetManager.requestMovingPhoto(context, asset, requestOptions, handler);
console.info("moving photo requested successfully, requestId: " + requestId);
} catch (err) {
console.error(`failed to request moving photo, error code is ${err.code}, message is ${err.message}`);
}
}
requestContent(resourceType: ResourceType): Promise<ArrayBuffer>
请求指定资源类型的动态照片内容,以ArrayBuffer的形式返回。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
需要权限:ohos.permission.READ_IMAGEVIDEO
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
resourceType | ResourceType | 是 | 所请求动态照片内容的资源类型。 |
返回值:
类型 | 说明 |
---|---|
Promise<ArrayBuffer> | Promise对象,返回包含所请求文件内容的ArrayBuffer。 |
错误码:
错误码ID | 错误信息 |
---|---|
201 | Permission denied |
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
14000011 | System inner fail |
示例:
phAccessHelper的创建请参考photoAccessHelper.getPhotoAccessHelper的示例使用。
import { dataSharePredicates } from '@kit.ArkData';
class MovingPhotoHandler implements photoAccessHelper.MediaAssetDataHandler<photoAccessHelper.MovingPhoto> {
async onDataPrepared(movingPhoto: photoAccessHelper.MovingPhoto) {
if (movingPhoto === undefined) {
console.error('Error occurred when preparing data');
return;
}
try {
let buffer: ArrayBuffer = await movingPhoto.requestContent(photoAccessHelper.ResourceType.IMAGE_RESOURCE);
console.log("moving photo image content retrieved successfully, buffer length: " + buffer.byteLength);
} catch (err) {
console.error(`failed to retrieve image content of moving photo, error code is ${err.code}, message is ${err.message}`);
}
}
}
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
predicates.equalTo(photoAccessHelper.PhotoKeys.PHOTO_SUBTYPE, photoAccessHelper.PhotoSubtype.MOVING_PHOTO);
let fetchOptions: photoAccessHelper.FetchOptions = {
fetchColumns: [],
predicates: predicates
};
// 请确保图库内存在动态照片。
let assetResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
let asset: photoAccessHelper.PhotoAsset = await assetResult.getFirstObject();
let requestOptions: photoAccessHelper.RequestOptions = {
deliveryMode: photoAccessHelper.DeliveryMode.FAST_MODE,
}
const handler = new MovingPhotoHandler();
try {
let requestId: string = await photoAccessHelper.MediaAssetManager.requestMovingPhoto(context, asset, requestOptions, handler);
console.info("moving photo requested successfully, requestId: " + requestId);
} catch (err) {
console.error(`failed to request moving photo, error code is ${err.code}, message is ${err.message}`);
}
}
type MemberType = number | string | boolean
PhotoAsset的成员类型。
成员类型为下表类型的并集。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
类型 | 说明 |
---|---|
number | 表示值类型为数字,可取任意值。 |
string | 表示值类型为字符,可取任意值。 |
boolean | 表示值类型为布尔类型。 |
枚举,媒体文件类型。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
IMAGE | 1 | 图片。 |
VIDEO | 2 | 视频。 |
PhotoSubtype是不同PhotoAsset类型的枚举。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
DEFAULT | 0 | 默认照片类型。 |
MOVING_PHOTO | 3 | 动态照片文件类型。 |
BURST | 4 | 连拍照片文件类型。 |
枚举,媒体文件的动态范围类型。
系统能力: SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
SDR | 0 | 标准动态范围类型。 |
HDR | 1 | 高动态范围类型。 |
枚举,相册类型,表示是用户相册还是系统预置相册。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
USER | 0 | 用户相册。 |
SYSTEM | 1024 | 系统预置相册。 |
枚举,相册子类型,表示具体的相册类型。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
USER_GENERIC | 1 | 用户相册。 |
FAVORITE | 1025 | 收藏夹。 |
VIDEO | 1026 | 视频相册。 |
IMAGE12+ | 1031 | 图片相册。 |
ANY | 2147483647 | 任意相册。 |
枚举,文件位置,表示文件在本地或云端。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
LOCAL | 1 | 文件只存在于本端设备。 |
CLOUD | 2 | 文件只存在于云端。 |
LOCAL_AND_CLOUD | 3 | 文件存在于本端设备和云端。 |
枚举,图片和视频文件关键信息。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
URI | 'uri' | 文件uri。 注意:查询照片时,该字段仅支持使用DataSharePredicates.equalTo谓词。 |
PHOTO_TYPE | 'media_type' | 媒体文件类型。 |
DISPLAY_NAME | 'display_name' | 显示名字。规格为: - 应包含有效文件主名和图片或视频扩展名。 - 文件名字符串长度为1~255。 - 文件主名中不允许出现的非法英文字符。 - 不允许出现非法字符,包括:. .. \ / : * ? " ' ` < > | { } [ ]。 |
SIZE | 'size' | 文件大小(单位:字节)。动态照片的size包括图片和视频的总大小。 |
DATE_ADDED | 'date_added' | 文件创建时的Unix时间戳(单位:秒)。 |
DATE_MODIFIED | 'date_modified' | 文件修改时的Unix时间戳(单位:秒)。修改文件名不会改变此值,当文件内容发生修改时才会更新。 |
DURATION | 'duration' | 持续时间(单位:毫秒)。 |
WIDTH | 'width' | 图片宽度(单位:像素)。 |
HEIGHT | 'height' | 图片高度(单位:像素)。 |
DATE_TAKEN | 'date_taken' | 拍摄时的Unix时间戳(单位:秒)。 |
ORIENTATION | 'orientation' | 文件的旋转角度,单位为度。 |
FAVORITE | 'is_favorite' | 收藏。 |
TITLE | 'title' | 文件标题。 |
DATE_ADDED_MS12+ | 'date_added_ms' | 文件创建时的Unix时间戳(单位:毫秒)。 注意:查询照片时,不支持基于该字段排序。 |
DATE_MODIFIED_MS12+ | 'date_modified_ms' | 文件修改时的Unix时间戳(单位:毫秒)。修改文件名不会改变此值,当文件内容发生修改时才会更新。 注意:查询照片时,不支持基于该字段排序。 |
PHOTO_SUBTYPE12+ | 'subtype' | 媒体文件的子类型。 |
DYNAMIC_RANGE_TYPE12+ | 'dynamic_range_type' | 媒体文件的动态范围类型。 |
COVER_POSITION12+ | 'cover_position' | 动态照片的封面位置,具体表示封面帧所对应的视频时间戳(单位:微秒)。 |
BURST_KEY12+ | 'burst_key' | 一组连拍照片的唯一标识:uuid。 |
LCD_SIZE12+ | 'lcd_size' | LCD图片的宽高,值为width:height拼接而成的字符串。 |
THM_SIZE12+ | 'thm_size' | THUMB图片的宽高,值为width:height拼接而成的字符串。 |
DETAIL_TIME13+ | 'detail_time' | 大图浏览时间,值为拍摄时对应时区的时间的字符串,不会跟随时区变化。 |
DATE_TAKEN_MS13+ | 'date_taken_ms' | 拍摄时的Unix时间戳(单位:毫秒)。 |
POSITION16+ | 'position' | 文件位置类型。 |
MEDIA_SUFFIX18+ | 'media_suffix' | 文件的后缀名。 |
枚举,相册关键信息。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
URI | 'uri' | 相册uri。 |
ALBUM_NAME | 'album_name' | 相册名字。 |
图片或视频的创建选项。
title参数的规格如下:
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
title | string | 否 | 图片或者视频的标题。 |
subtype12+ | PhotoSubtype | 否 | 图片或者视频的文件子类型。 原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。 |
检索条件。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
fetchColumns | Array<string> | 是 | 是 | 检索条件,指定列名查询。 对于照片,如果该参数为空,默认查询'uri'、'media_type'、'subtype'和'display_name',使用get接口获取当前对象的其他属性时将会报错。示例:fetchColumns: ['uri', 'title']。 对于相册,如果该参数为空,默认查询'uri'和'album_name'。 |
predicates | dataSharePredicates.DataSharePredicates | 是 | 是 | 谓词查询,显示过滤条件。 |
请求策略。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 类型 | 只读 | 可选 | 说明 |
---|---|---|---|---|
deliveryMode | DeliveryMode | 否 | 否 | 请求资源分发模式,可以指定对于该资源的请求策略,可被配置为快速模式,高质量模式,均衡模式三种策略。 |
compatibleMode15+ | CompatibleMode | 否 | 是 | 配置HDR视频资源转码模式,可指定配置为转码和不转码两种策略。默认为原视频资源内容模式即不转码。 |
mediaAssetProgressHandler15+ | MediaAssetProgressHandler | 否 | 是 | 配置HDR视频转码为SDR视频时的进度级回调。 |
媒体变更请求,资产变更请求和相册变更请求的父类型。
注意:媒体变更请求必须在调用applyChanges后才会生效。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
枚举,写入资源的类型。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
IMAGE_RESOURCE | 1 | 表示图片资源。 |
VIDEO_RESOURCE | 2 | 表示视频资源。 |
枚举,图片保存类型。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
JPEG | 1 | 表示jpeg图片类型。 |
HEIF | 2 | 表示heif图片类型。 |
监听器回调函数的返回值。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
type | NotifyType | 是 | 否 | ChangeData的通知类型。 |
uris | Array<string> | 是 | 否 | 相同NotifyType的所有uri,可以是PhotoAsset或Album。 |
extraUris | Array<string> | 是 | 否 | 相册中变动文件的uri数组。可能为undefined,使用前需要检查是否为undefined。 |
枚举,通知事件的类型。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
NOTIFY_ADD | 0 | 添加文件集或相册通知的类型。 |
NOTIFY_UPDATE | 1 | 文件集或相册的更新通知类型。 |
NOTIFY_REMOVE | 2 | 删除文件集或相册的通知类型。 |
NOTIFY_ALBUM_ADD_ASSET | 3 | 在相册中添加的文件集的通知类型。 |
NOTIFY_ALBUM_REMOVE_ASSET | 4 | 在相册中删除的文件集的通知类型。 |
枚举,DefaultChangeUri子类型。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
DEFAULT_PHOTO_URI | 'file://media/Photo' | 默认PhotoAsset的uri,与forSubUri{true}一起使用,将接收所有PhotoAsset的更改通知。 |
DEFAULT_ALBUM_URI | 'file://media/PhotoAlbum' | 默认相册的uri,与forSubUri{true}一起使用,将接收所有相册的更改通知。 |
枚举,可选择的媒体文件类型。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
IMAGE_TYPE | 'image/*' | 图片类型。 |
VIDEO_TYPE | 'video/*' | 视频类型。 |
IMAGE_VIDEO_TYPE | '*/*' | 图片和视频类型。 |
MOVING_PHOTO_IMAGE_TYPE12+ | 'image/movingPhoto' | 动态照片类型。 原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。 |
枚举,推荐的图片类型。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
QR_OR_BAR_CODE | 1 | 二维码或条码。 |
QR_CODE | 2 | 二维码。 |
BAR_CODE | 3 | 条码。 |
ID_CARD | 4 | 身份证。 |
PROFILE_PICTURE | 5 | 头像。 |
PASSPORT12+ | 6 | 护照。 原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。 |
BANK_CARD12+ | 7 | 银行卡。 原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。 |
DRIVER_LICENSE12+ | 8 | 驾驶证。 原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。 |
DRIVING_LICENSE12+ | 9 | 行驶证。 原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。 |
FEATURED_SINGLE_PORTRAIT12+ | 10 | 推荐人像。 原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。 |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
try {
let recommendOptions: photoAccessHelper.RecommendationOptions = {
recommendationType: photoAccessHelper.RecommendationType.ID_CARD
}
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}`);
}
}
文本信息,用于推荐图片的文本信息。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
text | string | 否 | 如果需要根据文本(支持250字以内的简体中文)推荐相应的图片,则配置此参数。text默认是空字符串。 |
示例:
import { BusinessError } from '@kit.BasicServicesKit';
async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper) {
try {
let textInfo: photoAccessHelper.TextContextInfo = {
text: '上海野生动物园的大熊猫'
}
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}`);
}
}
图片推荐选项(基于图片数据分析结果,依赖设备适配)。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
recommendationType | RecommendationType | 否 | 如果需要根据枚举值推荐相应的图片,则配置此参数。 |
textContextInfo12+ | TextContextInfo | 否 | 如果需要根据文本信息推荐相应的图片,则配置此参数(如果同时配置了recommendationType,则仅textContextInfo生效)。 原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。 |
枚举,单选模式类型。
原子化服务API: 从API version 18开始,该接口支持在原子化服务中使用。
系统能力: SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
BROWSER_MODE | 0 | 大图预览模式。 |
SELECT_MODE | 1 | 直接选中模式。 |
BROWSER_AND_SELECT_MODE | 2 | 兼容模式,点击右下角区域为直接选中模式,点击其他区域进入大图预览模式。 |
图库选择选项基类。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
MIMEType10+ | PhotoViewMIMETypes | 否 | 可选择的媒体文件类型,若无此参数,则默认为图片和视频类型。 原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。 |
maxSelectNumber10+ | number | 否 | 选择媒体文件数量的最大值(最大可设置的值为500,若不设置则默认为50)。 原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。 |
isPhotoTakingSupported11+ | boolean | 否 | 是否支持拍照,true表示支持,false表示不支持,默认为true。 原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。 |
isSearchSupported11+ | boolean | 否 | 是否支持搜索,true表示支持,false表示不支持,默认为true。 原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。 |
recommendationOptions11+ | RecommendationOptions | 否 | 图片推荐相关配置参数。 原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。 |
preselectedUris11+ | Array<string> | 否 | 预选择图片的uri数据。 原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。 |
isPreviewForSingleSelectionSupported(deprecated) | boolean | 否 | 单选模式下是否需要进大图预览,true表示需要,false表示不需要,默认为true。 原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。 从API version 12开始支持,从API version 18开始废弃。 |
singleSelectionMode18+ | SingleSelectionMode | 否 | 单选模式类型。默认为大图预览模式(SingleSelectionMode.BROWSER_MODE)。 原子化服务API: 从API version 18开始,该接口支持在原子化服务中使用。 |
mimeTypeFilter19+ | MimeTypeFilter | 否 | 文件类型的过滤配置,支持指定多个类型过滤。 当配置mimeTypeFilter参数时,MIMEType的配置自动失效。 配置该参数时,仅显示配置过滤类型对应的媒体文件,建议提示用户仅支持选择指定类型的图片/视频。 原子化服务API: 从API version 19开始,该接口支持在原子化服务中使用。 |
fileSizeFilter19+ | FileSizeFilter | 否 | 可选择媒体文件大小的过滤配置。 配置该参数时,仅显示配置文件大小范围的媒体文件,建议提示用户仅支持选择指定大小的图片/视频。 原子化服务API: 从API version 19开始,该接口支持在原子化服务中使用。 |
videoDurationFilter19+ | VideoDurationFilter | 否 | 可选择媒体文件视频时长的过滤配置。 配置该参数时,仅显示配置视频时长范围的媒体文件,建议提示用户仅支持选择指定时长视频。 原子化服务API: 从API version 19开始,该接口支持在原子化服务中使用。 |
图库选择选项子类,继承于BaseSelectOptions。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
isEditSupported11+ | boolean | 否 | 是否支持编辑照片,true表示支持,false表示不支持,默认为true。 |
isOriginalSupported12+ | boolean | 否 | 是否显示选择原图按钮,true表示显示,false表示不显示,默认为true。 原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。 |
subWindowName12+ | string | 否 | 子窗窗口名称。 原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。 |
completeButtonText14+ | CompleteButtonText | 否 | 完成按钮显示的内容。 完成按钮指在界面右下方,用户点击表示图片选择已完成的按钮。 原子化服务API: 从API version 14开始,该接口支持在原子化服务中使用。 |
返回图库选择后的结果集。
原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
photoUris | Array<string> | 是 | 是 | 返回图库选择后的媒体文件的uri数组,此uri数组只能通过临时授权的方式调用photoAccessHelper.getAssets接口去使用,具体使用方式参见用户文件uri介绍中的媒体文件uri的使用方式。 |
isOriginalPhoto | boolean | 是 | 是 | 返回图库选择后的媒体文件是否为原图。true为是原图,false为不是原图,默认值是false。 |
文件类型的过滤配置。
原子化服务API: 从API version 19开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
mimeTypeArray | Array<string> | 是 | PhotoPicker可供用户选择媒体文件的过滤类型。最多支持指定十种媒体文件类型。 过滤类型参考MIME类型定义,例如:“image/jpeg”、“video/mp4”等。 |
可选择媒体文件大小的过滤配置。
原子化服务API: 从API version 19开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
filterOperator | FilterOperator | 是 | 过滤操作符。 例如:按照大于/小于某个fileSize的方式过滤文件。 |
fileSize | number | 是 | 指定进行过滤的文件大小。 单位为字节(Byte)。 |
extraFileSize | number | 否 | 针对FilterOperator.BETWEEN情况下,配置文件大小的上限值。默认值为-1。 单位为字节(Byte) |
可选择媒体文件视频时长的过滤配置。
原子化服务API: 从API version 19开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
filterOperator | FilterOperator | 是 | 过滤操作符。 例如:按照大于/小于某个videoDuration的方式过滤可选择的视频。 |
videoDuration | number | 是 | 指定过滤视频的时长。 单位为毫秒(ms)。 |
extraVideoDuration | number | 否 | 针对FilterOperator.BETWEEN情况下,配置视频时长的上限值。默认值为-1。 单位为毫秒(ms)。 |
枚举,支持进行过滤的操作符。
原子化服务API: 从API version 19开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
EQUAL_TO | 0 | 等于。 |
NOT_EQUAL_TO | 1 | 不等于。 |
MORE_THAN | 2 | 大于。 |
LESS_THAN | 3 | 小于。 |
MORE_THAN_OR_EQUAL_TO | 4 | 大于等于。 |
LESS_THAN_OR_EQUAL_TO | 5 | 小于等于。 |
BETWEEN | 6 | 在指定范围内。 |
枚举,资源分发模式。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
FAST_MODE | 0 | 快速模式。 |
HIGH_QUALITY_MODE | 1 | 高质量模式。 |
BALANCE_MODE | 2 | 均衡模式。 |
保存图片/视频到媒体库的配置,包括保存的文件名等。
原子化服务API: 从API version 12开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
title | string | 否 | 图片或者视频的标题,不传入时由系统生成。参数规格为: - 不应包含扩展名。 - 文件名字符串长度为1~255(资产文件名为标题+扩展名)。 - 不允许出现非法字符,包括:. \ / : * ? " ' ` < > | { } [ ] |
fileNameExtension | string | 是 | 文件扩展名,例如'jpg'。 |
photoType | PhotoType | 是 | 创建的文件类型PhotoType,IMAGE或者VIDEO。 |
subtype | PhotoSubtype | 否 | 图片或者视频的文件子类型PhotoSubtype,当前仅支持DEFAULT。 |
配置转码模式。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
ORIGINAL_FORMAT_MODE | 0 | 原视频资源内容模式。 |
COMPATIBLE_FORMAT_MODE | 1 | 兼容模式,从HDR视频资源转换为SDR视频资源。 |
配置完成按钮显示内容。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
名称 | 值 | 说明 |
---|---|---|
TEXT_DONE14+ | 0 | 显示“完成”。 原子化服务API: 从API version 14开始,该接口支持在原子化服务中使用。 |
TEXT_SEND14+ | 1 | 显示“发送”。 原子化服务API: 从API version 14开始,该接口支持在原子化服务中使用。 |
TEXT_ADD14+ | 2 | 显示“添加”。 原子化服务API: 从API version 14开始,该接口支持在原子化服务中使用。 |
媒体资产进度处理器,应用在onProgress方法中获取媒体资产进度。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
onProgress(progress: number): void
当所请求的视频资源返回进度时系统会回调此方法。
系统能力:SystemCapability.FileManagement.PhotoAccessHelper.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
progress | number | 是 | 返回的进度百分比,范围为0~100。 |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。