1# @ohos.file.photoAccessHelper (相册管理模块)(系统接口) 2 3该模块提供相册管理模块能力,包括创建相册以及访问、修改相册中的媒体数据信息等。 4 5> **说明:** 6> 7> - 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> - 当前页面仅包含本模块的系统接口,其他公开接口参见[@ohos.file.photoAccessHelper (相册管理模块)](js-apis-photoAccessHelper.md)。 9 10## 导入模块 11 12```ts 13import { photoAccessHelper } from '@kit.MediaLibraryKit'; 14``` 15 16## PhotoAccessHelper 17 18### createAsset 19 20createAsset(displayName: string, callback: AsyncCallback<PhotoAsset>): void 21 22指定待创建的图片或者视频的文件名,创建图片或视频资源,使用callback方式返回结果。 23 24待创建的文件名参数规格为: 25- 应包含有效文件主名和图片或视频扩展名。 26- 文件名字符串长度为1~255。 27- 文件主名中不允许出现的非法英文字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ] 28 29**系统接口**:此接口为系统接口。 30 31**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 32 33**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 34 35**参数:** 36 37| 参数名 | 类型 | 必填 | 说明 | 38| -------- | ------------------------ | ---- | ------------------------- | 39| displayName | string | 是 | 创建的图片或者视频文件名。 | 40| callback | AsyncCallback<[PhotoAsset](#photoasset)> | 是 | callback返回创建的图片和视频结果。 | 41 42**错误码:** 43 44接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 45 46| 错误码ID | 错误信息 | 47| -------- | ---------------------------------------- | 48| 202 | Called by non-system application. | 49| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 50| 13900012 | Permission denied. | 51| 13900020 | Invalid argument. | 52| 14000001 | Invalid display name. | 53| 14000011 | System inner fail. | 54 55**示例:** 56 57```ts 58async function example() { 59 console.info('createAssetDemo'); 60 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 61 phAccessHelper.createAsset(testFileName, (err, photoAsset) => { 62 if (photoAsset !== undefined) { 63 console.info('createAsset file displayName' + photoAsset.displayName); 64 console.info('createAsset successfully'); 65 } else { 66 console.error(`createAsset failed, error: ${err.code}, ${err.message}`); 67 } 68 }); 69} 70``` 71 72### createAsset 73 74createAsset(displayName: string): Promise<PhotoAsset> 75 76指定待创建的图片或者视频的文件名,创建图片或视频资源,使用Promise方式返回结果。 77 78待创建的文件名参数规格为: 79- 应包含有效文件主名和图片或视频扩展名。 80- 文件名字符串长度为1~255。 81- 文件主名中不允许出现的非法英文字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ] 82 83**系统接口**:此接口为系统接口。 84 85**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 86 87**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 88 89**参数:** 90 91| 参数名 | 类型 | 必填 | 说明 | 92| -------- | ------------------------ | ---- | ------------------------- | 93| displayName | string | 是 | 创建的图片或者视频文件名。 | 94 95**返回值:** 96 97| 类型 | 说明 | 98| --------------------------- | -------------- | 99| Promise<[PhotoAsset](#photoasset)> | Promise对象,返回创建的图片和视频结果。 | 100 101**错误码:** 102 103接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 104 105| 错误码ID | 错误信息 | 106| -------- | ---------------------------------------- | 107| 202 | Called by non-system application. | 108| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 109| 13900012 | Permission denied. | 110| 13900020 | Invalid argument. | 111| 14000001 | Invalid display name. | 112| 14000011 | System inner fail. | 113 114**示例:** 115 116```ts 117async function example() { 118 console.info('createAssetDemo'); 119 try { 120 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 121 let photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName); 122 console.info('createAsset file displayName' + photoAsset.displayName); 123 console.info('createAsset successfully'); 124 } catch (err) { 125 console.error(`createAsset failed, error: ${err.code}, ${err.message}`); 126 } 127} 128``` 129 130### createAsset 131 132createAsset(displayName: string, options: PhotoCreateOptions, callback: AsyncCallback<PhotoAsset>): void 133 134指定待创建的图片或者视频的文件名和创建选项,创建图片或视频资源,使用callback方式返回结果。 135 136待创建的文件名参数规格为: 137- 应包含有效文件主名和图片或视频扩展名。 138- 文件名字符串长度为1~255。 139- 文件主名中不允许出现的非法英文字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ] 140 141**系统接口**:此接口为系统接口。 142 143**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 144 145**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 146 147**参数:** 148 149| 参数名 | 类型 | 必填 | 说明 | 150| -------- | ------------------------ | ---- | ------------------------- | 151| displayName | string | 是 | 创建的图片或者视频文件名。 | 152| options | [PhotoCreateOptions](#photocreateoptions) | 是 | 图片或视频的创建选项。 | 153| callback | AsyncCallback<[PhotoAsset](#photoasset)> | 是 | callback返回创建的图片和视频结果。 | 154 155**错误码:** 156 157接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 158 159| 错误码ID | 错误信息 | 160| -------- | ---------------------------------------- | 161| 202 | Called by non-system application. | 162| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 163| 13900012 | Permission denied. | 164| 13900020 | Invalid argument. | 165| 14000001 | Invalid display name. | 166| 14000011 | System inner fail. | 167 168**示例:** 169 170```ts 171async function example() { 172 console.info('createAssetDemo'); 173 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 174 let createOption: photoAccessHelper.PhotoCreateOptions = { 175 subtype: photoAccessHelper.PhotoSubtype.DEFAULT 176 } 177 phAccessHelper.createAsset(testFileName, createOption, (err, photoAsset) => { 178 if (photoAsset !== undefined) { 179 console.info('createAsset file displayName' + photoAsset.displayName); 180 console.info('createAsset successfully'); 181 } else { 182 console.error(`createAsset failed, error: ${err.code}, ${err.message}`); 183 } 184 }); 185} 186``` 187 188### createAsset 189 190createAsset(displayName: string, options: PhotoCreateOptions): Promise<PhotoAsset> 191 192指定待创建的图片或者视频的文件名和创建选项,创建图片或视频资源,使用Promise方式返回结果。 193 194待创建的文件名参数规格为: 195- 应包含有效文件主名和图片或视频扩展名。 196- 文件名字符串长度为1~255。 197- 文件主名中不允许出现的非法英文字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ] 198 199**系统接口**:此接口为系统接口。 200 201**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 202 203**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 204 205**参数:** 206 207| 参数名 | 类型 | 必填 | 说明 | 208| -------- | ------------------------ | ---- | ------------------------- | 209| displayName | string | 是 | 创建的图片或者视频文件名。 | 210| options | [PhotoCreateOptions](#photocreateoptions) | 是 | 图片或视频的创建选项。 | 211 212**返回值:** 213 214| 类型 | 说明 | 215| --------------------------- | -------------- | 216| Promise<[PhotoAsset](#photoasset)> | Promise对象,返回创建的图片和视频结果。 | 217 218**错误码:** 219 220接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 221 222| 错误码ID | 错误信息 | 223| -------- | ---------------------------------------- | 224| 202 | Called by non-system application. | 225| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 226| 13900012 | Permission denied. | 227| 13900020 | Invalid argument. | 228| 14000001 | Invalid display name. | 229| 14000011 | System inner fail. | 230 231**示例:** 232 233```ts 234async function example() { 235 console.info('createAssetDemo'); 236 try { 237 let testFileName:string = 'testFile' + Date.now() + '.jpg'; 238 let createOption: photoAccessHelper.PhotoCreateOptions = { 239 subtype: photoAccessHelper.PhotoSubtype.DEFAULT 240 } 241 let photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName, createOption); 242 console.info('createAsset file displayName' + photoAsset.displayName); 243 console.info('createAsset successfully'); 244 } catch (err) { 245 console.error(`createAsset failed, error: ${err.code}, ${err.message}`); 246 } 247} 248``` 249 250### createAlbum<sup>(deprecated)</sup> 251 252createAlbum(name: string, callback: AsyncCallback<Album>): void 253 254创建相册,使用callback方式返回结果。 255 256待创建的相册名参数规格为: 257- 相册名字符串长度为1~255。 258- 不允许出现的非法英文字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ] 259- 英文字符大小写不敏感。 260- 相册名不允许重名。 261 262> **说明:** 263> 264> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.createAlbumRequest](#createalbumrequest11)替代。 265 266**系统接口**:此接口为系统接口。 267 268**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 269 270**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 271 272**参数:** 273 274| 参数名 | 类型 | 必填 | 说明 | 275| -------- | ------------------------ | ---- | ------------------------- | 276| name | string | 是 | 待创建相册的相册名。 | 277| callback | AsyncCallback<[Album](#album)> | 是 | callback返回创建的相册实例。 | 278 279**错误码:** 280 281接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 282 283| 错误码ID | 错误信息 | 284| -------- | ---------------------------------------- | 285| 202 | Called by non-system application. | 286| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 287| 13900012 | Permission denied. | 288| 13900015 | File exists. | 289| 13900020 | Invalid argument. | 290| 14000011 | System inner fail. | 291 292**示例:** 293 294```ts 295async function example() { 296 console.info('createAlbumDemo'); 297 let albumName: string = 'newAlbumName' + new Date().getTime(); 298 phAccessHelper.createAlbum(albumName, (err, album) => { 299 if (err) { 300 console.error(`createAlbumCallback failed with err: ${err.code}, ${err.message}`); 301 return; 302 } 303 console.info('createAlbumCallback successfully, album: ' + album.albumName + ' album uri: ' + album.albumUri); 304 }); 305} 306``` 307 308### createAlbum<sup>(deprecated)</sup> 309 310createAlbum(name: string): Promise<Album> 311 312创建相册,使用Promise方式返回结果。 313 314待创建的相册名参数规格为: 315- 相册名字符串长度为1~255。 316- 不允许出现的非法英文字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ] 317- 英文字符大小写不敏感。 318- 相册名不允许重名。 319 320> **说明:** 321> 322> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.createAlbumRequest](#createalbumrequest11)替代。 323 324**系统接口**:此接口为系统接口。 325 326**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 327 328**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 329 330**参数:** 331 332| 参数名 | 类型 | 必填 | 说明 | 333| -------- | ------------------------ | ---- | ------------------------- | 334| name | string | 是 | 待创建相册的相册名。 | 335 336**返回值:** 337 338| 类型 | 说明 | 339| --------------------------- | -------------- | 340| Promise<[Album](#album)> | Promise对象,返回创建的相册实例。 | 341 342**错误码:** 343 344接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 345 346| 错误码ID | 错误信息 | 347| -------- | ---------------------------------------- | 348| 202 | Called by non-system application. | 349| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 350| 13900012 | Permission denied. | 351| 13900015 | File exists. | 352| 13900020 | Invalid argument. | 353| 14000011 | System inner fail. | 354 355**示例:** 356 357```ts 358import { BusinessError } from '@kit.BasicServicesKit'; 359 360async function example() { 361 console.info('createAlbumDemo'); 362 let albumName: string = 'newAlbumName' + new Date().getTime(); 363 phAccessHelper.createAlbum(albumName).then((album) => { 364 console.info('createAlbumPromise successfully, album: ' + album.albumName + ' album uri: ' + album.albumUri); 365 }).catch((err: BusinessError) => { 366 console.error(`createAlbumPromise failed with err: ${err.code}, ${err.message}`); 367 }); 368} 369``` 370 371### deleteAlbums<sup>(deprecated)</sup> 372 373deleteAlbums(albums: Array<Album>, callback: AsyncCallback<void>): void 374 375删除相册,使用callback方式返回结果。 376 377删除相册前需先确保相册存在,只能删除用户相册。 378 379> **说明:** 380> 381> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.deleteAlbums](#deletealbums11)替代。 382 383**系统接口**:此接口为系统接口。 384 385**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 386 387**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 388 389**参数:** 390 391| 参数名 | 类型 | 必填 | 说明 | 392| -------- | ------------------------ | ---- | ------------------------- | 393| albums | Array<[Album](#album)> | 是 | 待删除相册的数组。 | 394| callback | AsyncCallback<void> | 是 | callback返回void。 | 395 396**错误码:** 397 398接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 399 400| 错误码ID | 错误信息 | 401| -------- | ---------------------------------------- | 402| 202 | Called by non-system application. | 403| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 404| 13900012 | Permission denied. | 405| 13900020 | Invalid argument. | 406| 14000011 | System inner fail. | 407 408**示例:** 409 410```ts 411import { dataSharePredicates } from '@kit.ArkData'; 412 413async function example() { 414 // 示例代码为删除相册名为newAlbumName的相册。 415 console.info('deleteAlbumsDemo'); 416 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 417 predicates.equalTo('album_name', 'newAlbumName'); 418 let fetchOptions: photoAccessHelper.FetchOptions = { 419 fetchColumns: [], 420 predicates: predicates 421 }; 422 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions); 423 let album: photoAccessHelper.Album = await fetchResult.getFirstObject(); 424 phAccessHelper.deleteAlbums([album], (err) => { 425 if (err) { 426 console.error(`deletePhotoAlbumsCallback failed with err: ${err.code}, ${err.message}`); 427 return; 428 } 429 console.info('deletePhotoAlbumsCallback successfully'); 430 }); 431 fetchResult.close(); 432} 433``` 434 435### deleteAlbums<sup>(deprecated)</sup> 436 437deleteAlbums(albums: Array<Album>): Promise<void> 438 439删除相册,使用Promise方式返回结果。 440 441删除相册前需先确保相册存在,只能删除用户相册。 442 443> **说明:** 444> 445> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.deleteAlbums](#deletealbums11)替代。 446 447**系统接口**:此接口为系统接口。 448 449**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 450 451**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 452 453**参数:** 454 455| 参数名 | 类型 | 必填 | 说明 | 456| -------- | ------------------------ | ---- | ------------------------- | 457| albums | Array<[Album](#album)> | 是 | 待删除相册的数组。 | 458 459**返回值:** 460 461| 类型 | 说明 | 462| --------------------------- | -------------- | 463| Promise<void> | Promise对象,返回void。 | 464 465**错误码:** 466 467接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 468 469| 错误码ID | 错误信息 | 470| -------- | ---------------------------------------- | 471| 202 | Called by non-system application. | 472| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 473| 13900012 | Permission denied. | 474| 13900020 | Invalid argument. | 475| 14000011 | System inner fail. | 476 477**示例:** 478 479```ts 480import { dataSharePredicates } from '@kit.ArkData'; 481import { BusinessError } from '@kit.BasicServicesKit'; 482 483async function example() { 484 // 示例代码为删除相册名为newAlbumName的相册。 485 console.info('deleteAlbumsDemo'); 486 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 487 predicates.equalTo('album_name', 'newAlbumName'); 488 let fetchOptions: photoAccessHelper.FetchOptions = { 489 fetchColumns: [], 490 predicates: predicates 491 }; 492 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions); 493 let album: photoAccessHelper.Album = await fetchResult.getFirstObject(); 494 phAccessHelper.deleteAlbums([album]).then(() => { 495 console.info('deletePhotoAlbumsPromise successfully'); 496 }).catch((err: BusinessError) => { 497 console.error(`deletePhotoAlbumsPromise failed with err: ${err.code}, ${err.message}`); 498 }); 499 fetchResult.close(); 500} 501``` 502 503### getHiddenAlbums<sup>11+</sup> 504 505getHiddenAlbums(mode: HiddenPhotosDisplayMode, options: FetchOptions, callback: AsyncCallback<FetchResult<Album>>): void 506 507根据隐藏文件显示模式和检索选项获取系统中的隐藏相册,使用callback方式返回结果。 508 509**系统接口**:此接口为系统接口。 510 511**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.MANAGE_PRIVATE_PHOTOS 512 513**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 514 515**参数:** 516 517| 参数名 | 类型 | 必填 | 说明 | 518| -------- | ------------------------ | ---- | ------------------------- | 519| mode | [HiddenPhotosDisplayMode](#hiddenphotosdisplaymode11) | 是 | 隐藏文件显示模式 | 520| options | [FetchOptions](js-apis-photoAccessHelper.md#fetchoptions) | 是 | 检索选项 | 521| callback | AsyncCallback<[FetchResult](js-apis-photoAccessHelper.md#fetchresult)<[Album](#album)>> | 是 | callback返回获取相册的结果集。 | 522 523**错误码:** 524 525接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 526 527| 错误码ID | 错误信息 | 528| -------- | ---------------------------------------- | 529| 201 | Permission verification failed, usually the result returned by VerifyAccessToken. | 530| 202 | Permission verification failed, application which is not a system application uses system API. | 531| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 532| 14000011 | System inner fail. | 533 534**示例:** 535 536```ts 537import { dataSharePredicates } from '@kit.ArkData'; 538 539// 获取系统中包含隐藏文件且相册名为'newAlbumName'的相册 540async function getHiddenAlbumsView() { 541 console.info('getHiddenAlbumsViewDemo'); 542 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 543 predicates.equalTo('album_name', 'newAlbumName'); 544 let fetchOptions: photoAccessHelper.FetchOptions = { 545 fetchColumns: [], 546 predicates: predicates 547 }; 548 phAccessHelper.getHiddenAlbums(photoAccessHelper.HiddenPhotosDisplayMode.ALBUMS_MODE, fetchOptions, 549 async (err, fetchResult) => { 550 if (fetchResult === undefined) { 551 console.error('getHiddenAlbumsViewCallback fetchResult is undefined'); 552 return; 553 } 554 let album = await fetchResult.getFirstObject(); 555 console.info('getHiddenAlbumsViewCallback successfully, album name: ' + album.albumName); 556 fetchResult.close(); 557 }); 558} 559``` 560 561### getHiddenAlbums<sup>11+</sup> 562 563getHiddenAlbums(mode: HiddenPhotosDisplayMode, callback: AsyncCallback<FetchResult<Album>>): void 564 565根据隐藏文件显示模式获取系统中的隐藏相册,使用callback方式返回结果 566 567**系统接口**:此接口为系统接口。 568 569**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.MANAGE_PRIVATE_PHOTOS 570 571**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 572 573**参数:** 574 575| 参数名 | 类型 | 必填 | 说明 | 576| -------- | ------------------------ | ---- | ------------------------- | 577| mode | [HiddenPhotosDisplayMode](#hiddenphotosdisplaymode11) | 是 | 隐藏文件显示模式 | 578| callback | AsyncCallback<[FetchResult](js-apis-photoAccessHelper.md#fetchresult)<[Album](#album)>> | 是 | callback返回获取相册的结果集。 | 579 580**错误码:** 581 582接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 583 584| 错误码ID | 错误信息 | 585| -------- | ---------------------------------------- | 586| 201 | Permission verification failed, usually the result returned by VerifyAccessToken. | 587| 202 | Permission verification failed, application which is not a system application uses system API. | 588| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 589| 14000011 | System inner fail. | 590 591**示例:** 592 593```ts 594import { dataSharePredicates } from '@kit.ArkData'; 595 596// 获取系统预置的隐藏相册 597async function getSysHiddenAlbum() { 598 console.info('getSysHiddenAlbumDemo'); 599 phAccessHelper.getHiddenAlbums(photoAccessHelper.HiddenPhotosDisplayMode.ASSETS_MODE, async (err, fetchResult) => { 600 if (fetchResult === undefined) { 601 console.error('getSysHiddenAlbumCallback fetchResult is undefined'); 602 return; 603 } 604 let hiddenAlbum: photoAccessHelper.Album = await fetchResult.getFirstObject(); 605 console.info('getSysHiddenAlbumCallback successfully, albumUri: ' + hiddenAlbum.albumUri); 606 fetchResult.close(); 607 }); 608} 609 610// 获取隐藏相册-相册视图,即系统中包含隐藏文件的相册(不包含系统预置的隐藏相册本身和回收站相册) 611async function getHiddenAlbumsView() { 612 console.info('getHiddenAlbumsViewDemo'); 613 phAccessHelper.getHiddenAlbums(photoAccessHelper.HiddenPhotosDisplayMode.ALBUMS_MODE, async (err, fetchResult) => { 614 if (fetchResult === undefined) { 615 console.error('getHiddenAlbumsViewCallback fetchResult is undefined'); 616 return; 617 } 618 let albums: Array<photoAccessHelper.Album> = await fetchResult.getAllObjects(); 619 console.info('getHiddenAlbumsViewCallback successfully, albums size: ' + albums.length); 620 621 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 622 let fetchOption: photoAccessHelper.FetchOptions = { 623 fetchColumns: [], 624 predicates: predicates 625 }; 626 for (let i = 0; i < albums.length; i++) { 627 // 获取相册中的隐藏文件 628 albums[i].getAssets(fetchOption, (err, assetFetchResult) => { 629 console.info('album get hidden assets successfully, getCount: ' + assetFetchResult.getCount()); 630 }); 631 } 632 fetchResult.close(); 633 }); 634} 635``` 636 637### getHiddenAlbums<sup>11+</sup> 638 639getHiddenAlbums(mode: HiddenPhotosDisplayMode, options?: FetchOptions): Promise<FetchResult<Album>> 640 641根据隐藏文件显示模式和检索选项获取系统中的隐藏相册,使用Promise方式返回结果。 642 643**系统接口**:此接口为系统接口。 644 645**需要权限**:ohos.permission.READ_IMAGEVIDEO 和 ohos.permission.MANAGE_PRIVATE_PHOTOS 646 647**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 648 649**参数:** 650 651| 参数名 | 类型 | 必填 | 说明 | 652| -------- | ------------------------ | ---- | ------------------------- | 653| mode | [HiddenPhotosDisplayMode](#hiddenphotosdisplaymode11) | 是 | 隐藏文件显示模式 | 654| options | [FetchOptions](js-apis-photoAccessHelper.md#fetchoptions) | 否 | 检索选项,不填时默认根据隐藏文件显示模式检索。 | 655 656**返回值:** 657 658| 类型 | 说明 | 659| --------------------------- | -------------- | 660| Promise<[FetchResult](js-apis-photoAccessHelper.md#fetchresult)<[Album](#album)>> | Promise对象,返回获取相册的结果集。 661 662**错误码:** 663 664接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 665 666| 错误码ID | 错误信息 | 667| -------- | ---------------------------------------- | 668| 201 | Permission verification failed, usually the result returned by VerifyAccessToken. | 669| 202 | Permission verification failed, application which is not a system application uses system API. | 670| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 671| 14000011 | System inner fail. | 672 673**示例:** 674 675```ts 676import { dataSharePredicates } from '@kit.ArkData'; 677import { BusinessError } from '@kit.BasicServicesKit'; 678 679// 获取系统预置的隐藏相册 680async function getSysHiddenAlbum() { 681 console.info('getSysHiddenAlbumDemo'); 682 phAccessHelper.getHiddenAlbums(photoAccessHelper.HiddenPhotosDisplayMode.ASSETS_MODE) 683 .then( async (fetchResult) => { 684 if (fetchResult === undefined) { 685 console.error('getSysHiddenAlbumPromise fetchResult is undefined'); 686 return; 687 } 688 let hiddenAlbum: photoAccessHelper.Album = await fetchResult.getFirstObject(); 689 console.info('getAlbumsPromise successfully, albumUri: ' + hiddenAlbum.albumUri); 690 fetchResult.close(); 691 }).catch((err: BusinessError) => { 692 console.error(`getSysHiddenAlbumPromise failed with err: ${err.code}, ${err.message}`); 693 }); 694} 695 696// 获取隐藏相册-相册视图,即系统中包含隐藏文件的相册(不包含系统预置的隐藏相册本身和回收站相册) 697async function getHiddenAlbumsView() { 698 console.info('getHiddenAlbumsViewDemo'); 699 phAccessHelper.getHiddenAlbums(photoAccessHelper.HiddenPhotosDisplayMode.ALBUMS_MODE).then( async (fetchResult) => { 700 if (fetchResult === undefined) { 701 console.error('getHiddenAlbumsViewPromise fetchResult is undefined'); 702 return; 703 } 704 let albums: Array<photoAccessHelper.Album> = await fetchResult.getAllObjects(); 705 console.info('getHiddenAlbumsViewPromise successfully, albums size: ' + albums.length); 706 707 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 708 let fetchOption: photoAccessHelper.FetchOptions = { 709 fetchColumns: [], 710 predicates: predicates 711 }; 712 for (let i = 0; i < albums.length; i++) { 713 // 获取相册中的隐藏文件 714 albums[i].getAssets(fetchOption).then((assetFetchResult) => { 715 console.info('album get hidden assets successfully, getCount: ' + assetFetchResult.getCount()); 716 }).catch((err: BusinessError) => { 717 console.error(`album get hidden assets failed with error: ${err.code}, ${err.message}`); 718 }); 719 } 720 fetchResult.close(); 721 }).catch((err: BusinessError) => { 722 console.error(`getHiddenAlbumsViewPromise failed with err: ${err.code}, ${err.message}`); 723 }); 724} 725``` 726 727### deleteAssets<sup>(deprecated)</sup> 728 729deleteAssets(uriList: Array<string>, callback: AsyncCallback<void>): void 730 731删除媒体文件,删除的文件进入到回收站,使用callback方式返回结果。 732 733> **说明:** 734> 735> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.deleteAssets](js-apis-photoAccessHelper.md#deleteassets11)替代。 736 737**系统接口**:此接口为系统接口。 738 739**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 740 741**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 742 743**参数:** 744 745| 参数名 | 类型 | 必填 | 说明 | 746| -------- | ------------------------- | ---- | ---------- | 747| uriList | Array<string> | 是 | 待删除的媒体文件uri数组。 | 748| callback | AsyncCallback<void> | 是 | callback返回void。 | 749 750**错误码:** 751 752接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 753 754| 错误码ID | 错误信息 | 755| -------- | ---------------------------------------- | 756| 202 | Called by non-system application. | 757| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 758| 13900012 | Permission denied. | 759| 13900020 | Invalid argument. | 760| 14000002 | Invalid uri. | 761| 14000011 | System inner fail. | 762 763**示例:** 764 765```ts 766import { dataSharePredicates } from '@kit.ArkData'; 767 768async function example() { 769 console.info('deleteAssetDemo'); 770 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 771 let fetchOptions: photoAccessHelper.FetchOptions = { 772 fetchColumns: [], 773 predicates: predicates 774 }; 775 try { 776 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 777 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 778 if (asset === undefined) { 779 console.error('asset not exist'); 780 return; 781 } 782 phAccessHelper.deleteAssets([asset.uri], (err) => { 783 if (err === undefined) { 784 console.info('deleteAssets successfully'); 785 } else { 786 console.error(`deleteAssets failed with error: ${err.code}, ${err.message}`); 787 } 788 }); 789 } catch (err) { 790 console.error(`fetch failed, error: ${err.code}, ${err.message}`); 791 } 792} 793``` 794 795### deleteAssets<sup>(deprecated)</sup> 796 797deleteAssets(uriList: Array<string>): Promise<void> 798 799删除媒体文件,删除的文件进入到回收站,使用Promise方式返回结果。 800 801> **说明:** 802> 803> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.deleteAssets](js-apis-photoAccessHelper.md#deleteassets11)替代。 804 805**系统接口**:此接口为系统接口。 806 807**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 808 809**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 810 811**参数:** 812 813| 参数名 | 类型 | 必填 | 说明 | 814| -------- | ------------------------- | ---- | ---------- | 815| uriList | Array<string> | 是 | 待删除的媒体文件uri数组。 | 816 817**返回值:** 818 819| 类型 | 说明 | 820| --------------------------------------- | ----------------- | 821| Promise<void>| Promise对象,返回void。 | 822 823**错误码:** 824 825接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 826 827| 错误码ID | 错误信息 | 828| -------- | ---------------------------------------- | 829| 202 | Called by non-system application. | 830| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 831| 13900012 | Permission denied. | 832| 13900020 | Invalid argument. | 833| 14000002 | Invalid uri. | 834| 14000011 | System inner fail. | 835 836**示例:** 837 838```ts 839import { dataSharePredicates } from '@kit.ArkData'; 840 841async function example() { 842 console.info('deleteDemo'); 843 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 844 let fetchOptions: photoAccessHelper.FetchOptions = { 845 fetchColumns: [], 846 predicates: predicates 847 }; 848 try { 849 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 850 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 851 if (asset === undefined) { 852 console.error('asset not exist'); 853 return; 854 } 855 await phAccessHelper.deleteAssets([asset.uri]); 856 console.info('deleteAssets successfully'); 857 } catch (err) { 858 console.error(`deleteAssets failed with error: ${err.code}, ${err.message}`); 859 } 860} 861``` 862 863### getPhotoIndex 864 865getPhotoIndex(photoUri: string, albumUri: string, options: FetchOptions, callback: AsyncCallback<number>): void 866 867获取相册中图片或视频的位置,使用callback方式返回结果。 868 869**系统接口**:此接口为系统接口。 870 871**需要权限**:ohos.permission.READ_IMAGEVIDEO 872 873**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 874 875**参数:** 876 877| 参数名 | 类型 | 必填 | 说明 | 878| -------- | ------------------------- | ---- | ---------- | 879| photoUri | string | 是 | 所查询的图库资源的uri。 | 880| albumUri | string | 是 | 相册uri,可以为空字符串,为空字符串时默认查询全部图库资源。 | 881| options | [FetchOptions](js-apis-photoAccessHelper.md#fetchoptions) | 是 | 检索选项,predicates中必须设置一种检索排序方式,不设置或多设置均会导致接口调用异常。 | 882| callback | AsyncCallback<number>| 是 | callback返回相册中资源的索引。 | 883 884**错误码:** 885 886接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 887 888| 错误码ID | 错误信息 | 889| -------- | ---------------------------------------- | 890| 202 | Called by non-system application. | 891| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 892| 13900012 | Permission denied. | 893| 13900020 | Invalid argument. | 894| 14000011 | System inner fail. | 895 896**示例:** 897 898```ts 899import { dataSharePredicates } from '@kit.ArkData'; 900 901async function example() { 902 try { 903 console.info('getPhotoIndexDemo'); 904 let predicatesForGetAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 905 let fetchOp: photoAccessHelper.FetchOptions = { 906 fetchColumns: [], 907 predicates: predicatesForGetAsset 908 }; 909 // Obtain the uri of the album 910 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.FAVORITE, fetchOp); 911 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 912 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 913 predicates.orderByAsc(photoAccessHelper.PhotoKeys.DATE_MODIFIED); 914 let fetchOptions: photoAccessHelper.FetchOptions = { 915 fetchColumns: [photoAccessHelper.PhotoKeys.DATE_MODIFIED], 916 predicates: predicates 917 }; 918 let photoFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions); 919 let expectIndex = 1; 920 // Obtain the uri of the second file 921 let photoAsset: photoAccessHelper.PhotoAsset = await photoFetchResult.getObjectByPosition(expectIndex); 922 923 phAccessHelper.getPhotoIndex(photoAsset.uri, album.albumUri, fetchOptions, (err, index) => { 924 if (err === undefined) { 925 console.info(`getPhotoIndex successfully and index is : ${index}`); 926 } else { 927 console.error(`getPhotoIndex failed; error: ${err.code}, ${err.message}`); 928 } 929 }); 930 } catch (error) { 931 console.error(`getPhotoIndex failed; error: ${error.code}, ${error.message}`); 932 } 933} 934``` 935 936### getPhotoIndex 937 938getPhotoIndex(photoUri: string, albumUri: string, options: FetchOptions): Promise<number> 939 940获取相册中图片或视频的位置,使用Promise方式返回结果。 941 942**系统接口**:此接口为系统接口。 943 944**需要权限**:ohos.permission.READ_IMAGEVIDEO 945 946**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 947 948**参数:** 949 950| 参数名 | 类型 | 必填 | 说明 | 951| -------- | ------------------------- | ---- | ---------- | 952| photoUri | string | 是 | 所查询的图库资源的uri。 | 953| albumUri | string | 是 | 相册uri,可以为空字符串,为空字符串时默认查询全部图库资源。 | 954| options | [FetchOptions](js-apis-photoAccessHelper.md#fetchoptions) | 是 | 检索选项,predicates中必须设置一种检索排序方式,不设置或多设置均会导致接口调用异常。 | 955 956**返回值:** 957 958| 类型 | 说明 | 959| --------------------------------------- | ----------------- | 960| Promise<number>| 返回相册中资源的索引。 | 961 962**错误码:** 963 964接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 965 966| 错误码ID | 错误信息 | 967| -------- | ---------------------------------------- | 968| 202 | Called by non-system application. | 969| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 970| 13900012 | Permission denied. | 971| 13900020 | Invalid argument. | 972| 14000011 | System inner fail. | 973 974**示例:** 975 976```ts 977import { dataSharePredicates } from '@kit.ArkData'; 978import { BusinessError } from '@kit.BasicServicesKit'; 979 980async function example() { 981 try { 982 console.info('getPhotoIndexDemo'); 983 let predicatesForGetAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 984 let fetchOp: photoAccessHelper.FetchOptions = { 985 fetchColumns: [], 986 predicates: predicatesForGetAsset 987 }; 988 // Obtain the uri of the album 989 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.FAVORITE, fetchOp); 990 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 991 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 992 predicates.orderByAsc(photoAccessHelper.PhotoKeys.DATE_MODIFIED); 993 let fetchOptions: photoAccessHelper.FetchOptions = { 994 fetchColumns: [photoAccessHelper.PhotoKeys.DATE_MODIFIED], 995 predicates: predicates 996 }; 997 let photoFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions); 998 let expectIndex = 1; 999 // Obtain the uri of the second file 1000 let photoAsset: photoAccessHelper.PhotoAsset = await photoFetchResult.getObjectByPosition(expectIndex); 1001 phAccessHelper.getPhotoIndex(photoAsset.uri, album.albumUri, fetchOptions).then((index) => { 1002 console.info(`getPhotoIndex successfully and index is : ${index}`); 1003 }).catch((err: BusinessError) => { 1004 console.error(`getPhotoIndex failed; error: ${err.code}, ${err.message}`); 1005 }); 1006 } catch (error) { 1007 console.error(`getPhotoIndex failed; error: ${error.code}, ${error.message}`); 1008 } 1009} 1010``` 1011 1012### saveFormInfo<sup>11+</sup> 1013 1014saveFormInfo(info:FormInfo, callback: AsyncCallback<void>):void 1015 1016将图库卡片相关信息保存到数据库中,使用callback方式返回结果。 1017 1018**系统接口**:此接口为系统接口。 1019 1020**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1021 1022**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1023 1024**参数:** 1025 1026| 参数名 | 类型 | 必填 | 说明 | 1027| -------- | ------------------------ | ---- | ------------------------- | 1028| info | [FormInfo](#forminfo11) | 是 | 图库卡片信息,包括图库卡片的id和卡片绑定的图片的uri。 | 1029| callback | AsyncCallback<void> | 是 | callback返回void。 | 1030 1031**错误码:** 1032 1033接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1034 1035| 错误码ID | 错误信息 | 1036| -------- | ---------------------------------------- | 1037| 201 | Permission verification failed, usually the result returned by VerifyAccessToken. | 1038| 202 | Permission verification failed, application which is not a system application uses system API. | 1039| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1040| 14000011 | System inner fail. | 1041 1042 1043**示例:** 1044 1045```ts 1046import { dataSharePredicates } from '@kit.ArkData'; 1047import { BusinessError } from '@kit.BasicServicesKit'; 1048 1049async function example() { 1050 console.info('saveFormInfoDemo'); 1051 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1052 let fetchOptions: photoAccessHelper.FetchOptions = { 1053 fetchColumns: [], 1054 predicates: predicates 1055 }; 1056 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 1057 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 1058 1059 let info: photoAccessHelper.FormInfo = { 1060 //formId是一个由纯数字组成的字符串,uri为图库中存在的图片的uri信息,图库中无图片创建卡片时uri需为空字符串 1061 formId : "20230116123", 1062 uri: photoAsset.uri, 1063 } 1064 1065 phAccessHelper.saveFormInfo(info, async (err: BusinessError) => { 1066 if (err == undefined) { 1067 console.info('saveFormInfo success'); 1068 } else { 1069 console.error(`saveFormInfo fail with error: ${err.code}, ${err.message}`); 1070 } 1071 }); 1072} 1073``` 1074 1075### saveFormInfo<sup>11+</sup> 1076 1077saveFormInfo(info:FormInfo):Promise<void> 1078 1079将图库卡片相关信息保存到数据库中,使用Promise方式返回结果。 1080 1081**系统接口**:此接口为系统接口。 1082 1083**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1084 1085**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1086 1087**参数:** 1088 1089| 参数名 | 类型 | 必填 | 说明 | 1090| -------- | ------------------------ | ---- | ------------------------- | 1091| info | [FormInfo](#forminfo11) | 是 | 图库卡片信息,包括图库卡片的id和卡片绑定的图片的uri。 | 1092 1093**返回值:** 1094 1095| 类型 | 说明 | 1096| --------------------------------------- | ----------------- | 1097| Promise<void>| Promise对象,返回void。 | 1098 1099**错误码:** 1100 1101接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1102 1103| 错误码ID | 错误信息 | 1104| -------- | ---------------------------------------- | 1105| 201 | Permission verification failed, usually the result returned by VerifyAccessToken. | 1106| 202 | Permission verification failed, application which is not a system application uses system API. | 1107| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1108| 14000011 | System inner fail. | 1109 1110**示例:** 1111 1112```ts 1113import { dataSharePredicates } from '@kit.ArkData'; 1114import { BusinessError } from '@kit.BasicServicesKit'; 1115 1116async function example() { 1117 console.info('saveFormInfoDemo'); 1118 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1119 let fetchOptions: photoAccessHelper.FetchOptions = { 1120 fetchColumns: [], 1121 predicates: predicates 1122 }; 1123 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 1124 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 1125 1126 let info: photoAccessHelper.FormInfo = { 1127 //formId是一个由纯数字组成的字符串,uri为图库中存在的图片的uri信息,图库中无图片创建卡片时uri需为空字符串 1128 formId: "20230116123", 1129 uri: photoAsset.uri, 1130 } 1131 1132 phAccessHelper.saveFormInfo(info).then(() => { 1133 console.info('saveFormInfo successfully'); 1134 }).catch((err: BusinessError) => { 1135 console.error(`saveFormInfo failed with error: ${err.code}, ${err.message}`); 1136 }); 1137} 1138``` 1139 1140### removeFormInfo<sup>11+</sup> 1141 1142removeFormInfo(info:FormInfo, callback: AsyncCallback<void>):void 1143 1144从数据库中删除图库卡片信息,使用callback方式返回结果。 1145 1146**系统接口**:此接口为系统接口。 1147 1148**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1149 1150**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1151 1152**参数:** 1153 1154| 参数名 | 类型 | 必填 | 说明 | 1155| -------- | ------------------------ | ---- | ------------------------- | 1156| info | [FormInfo](#forminfo11) | 是 | 图库卡片信息,包括图库卡片的id和卡片绑定的图片的uri。 | 1157| callback | AsyncCallback<void> | 是 | callback返回void。 | 1158 1159**错误码:** 1160 1161接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1162 1163| 错误码ID | 错误信息 | 1164| -------- | ---------------------------------------- | 1165| 201 | Permission verification failed, usually the result returned by VerifyAccessToken. | 1166| 202 | Permission verification failed, application which is not a system application uses system API. | 1167| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1168| 14000011 | System inner fail. | 1169 1170**示例:** 1171 1172```ts 1173import { BusinessError } from '@kit.BasicServicesKit'; 1174 1175async function example() { 1176 console.info('removeFormInfoDemo'); 1177 let info: photoAccessHelper.FormInfo = { 1178 //formId是一个由纯数字组成的字符串,移除卡片的时候uri填空即可 1179 formId: "20230116123", 1180 uri: "", 1181 } 1182 1183 phAccessHelper.removeFormInfo(info, async (err: BusinessError) => { 1184 if (err == undefined) { 1185 console.info('removeFormInfo success'); 1186 } else { 1187 console.error(`removeFormInfo fail with error: ${err.code}, ${err.message}`); 1188 } 1189 }); 1190} 1191``` 1192 1193### removeFormInfo<sup>11+</sup> 1194 1195removeFormInfo(info:FormInfo):Promise<void> 1196 1197从数据库中删除图库卡片信息,使用Promise方式返回结果。 1198 1199**系统接口**:此接口为系统接口。 1200 1201**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1202 1203**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1204 1205**参数:** 1206 1207| 参数名 | 类型 | 必填 | 说明 | 1208| -------- | ------------------------ | ---- | ------------------------- | 1209| info | [FormInfo](#forminfo11) | 是 | 图库卡片信息,包括图库卡片的id和卡片绑定的图片的uri。 | 1210 1211**返回值:** 1212 1213| 类型 | 说明 | 1214| --------------------------------------- | ----------------- | 1215| Promise<void>| Promise对象,返回void。 | 1216 1217**错误码:** 1218 1219接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1220 1221| 错误码ID | 错误信息 | 1222| -------- | ---------------------------------------- | 1223| 201 | Permission verification failed, usually the result returned by VerifyAccessToken. | 1224| 202 | Permission verification failed, application which is not a system application uses system API. | 1225| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1226| 14000011 | System inner fail. | 1227 1228**示例:** 1229 1230```ts 1231import { BusinessError } from '@kit.BasicServicesKit'; 1232 1233async function example() { 1234 console.info('removeFormInfoDemo'); 1235 let info: photoAccessHelper.FormInfo = { 1236 //formId是一个由纯数字组成的字符串,移除卡片的时候uri填空即可 1237 formId: "20230116123", 1238 uri: "", 1239 } 1240 1241 phAccessHelper.removeFormInfo(info).then(() => { 1242 console.info('removeFormInfo successfully'); 1243 }).catch((err: BusinessError) => { 1244 console.error(`removeFormInfo failed with error: ${err.code}, ${err.message}`); 1245 }); 1246} 1247``` 1248 1249### createAssetsForApp<sup>12+</sup> 1250 1251createAssetsForApp(bundleName: string, appName: string, appId: string, photoCreationConfigs: Array<PhotoCreationConfig>): Promise<Array<string>> 1252 1253调用接口代替应用创建媒体库uri列表。Uri已对appId对应的应用授权,支持应用使用uri写入图片/视频。 1254 1255**系统接口**:此接口为系统接口。 1256 1257**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1258 1259**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1260 1261**参数:** 1262 1263| 参数名 | 类型 | 必填 | 说明 | 1264| -------- |----------------------------------------------------------------------| ---- | ------------------------- | 1265| bundleName | string | 是 | 需保存图片/视频文件的应用bundle name。 | 1266| appName | string | 是 | 需保存图片/视频文件的应用app name。 | 1267| appId | string | 是 | 需保存图片/视频文件的应用app id。 | 1268| photoCreationConfigs | Array<[PhotoCreationConfig](./js-apis-photoAccessHelper.md#photocreationconfig12)> | 是 | 保存图片/视频到媒体库的配置。 | 1269 1270**返回值:** 1271 1272| 类型 | 说明 | 1273| --------------------------------------- | ----------------- | 1274| Promise<Array<string>> | Promise对象,返回给接口调用方的的媒体库文件uri列表。Uri已对appId对应的应用授权,支持应用写入数据。 | 1275 1276**错误码:** 1277 1278接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1279 1280| 错误码ID | 错误信息 | 1281| -------- | ---------------------------------------- | 1282| 201 | Permission denied. | 1283| 202 | Called by non-system application. | 1284| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. | 1285| 14000011 | Internal system error. | 1286 1287**示例:** 1288 1289```ts 1290async function example() { 1291 console.info('createAssetsForAppDemo.'); 1292 1293 try { 1294 let bundleName: string = 'testBundleName'; 1295 let appName: string = 'testAppName'; 1296 let appId: string = 'testAppId'; 1297 let photoCreationConfigs: Array<photoAccessHelper.PhotoCreationConfig> = [ 1298 { 1299 title: 'test', 1300 fileNameExtension: 'jpg', 1301 photoType: photoAccessHelper.PhotoType.IMAGE, 1302 subtype: photoAccessHelper.PhotoSubtype.DEFAULT, 1303 } 1304 ]; 1305 let desFileUris: Array<string> = await phAccessHelper.createAssetsForApp(bundleName, appName, appId, photoCreationConfigs); 1306 console.info('createAssetsForApp success, data is ' + desFileUris); 1307 } catch (err) { 1308 console.error(`createAssetsForApp failed with error: ${err.code}, ${err.message}`); 1309 } 1310} 1311``` 1312 1313### grantPhotoUriPermission<sup>12+</sup> 1314 1315grantPhotoUriPermission(appid: string, uri: string, photoPermissionType: PhotoPermissionType, hideSensitiveType: HideSensitiveType): Promise<number> 1316 1317给应用授予uri的访问权限,使用Promise方式返回结果。 1318 1319**系统接口**:此接口为系统接口。 1320 1321**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1322 1323**需要权限:** ohos.permission.WRITE_IMAGEVIDEO 1324 1325**参数:** 1326 1327| 参数名 | 类型 | 必填 | 说明 | 1328| -------- |----------------------------------------------------------------------| ---- | ------------------------- | 1329| appid | string | 是 | 应用标识,将访问权限授予给appid标识的应用。 | 1330| uri | string | 是 | 媒体资源的uri,uri表示的资源的访问权限将授予给应用。| 1331| photoPermissionType | [PhotoPermissionType](#photopermissiontype12) | 是 | 权限类型,将photoPermissionType表示的权限授予给应用。权限的覆盖规则参考枚举类。| 1332| hideSensitiveType | [HideSensitiveType](#hidesensitivetype12) | 是 | 脱敏类型,预留参数,目前可传枚举类中任一值。| 1333 1334**返回值:** 1335 1336| 类型 | 说明 | 1337| --------------------------------------- | ----------------- | 1338| Promise<number> | Promise对象,0:授权成功。 1:已有权限。-1:授权失败。| 1339 1340**错误码:** 1341 1342接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1343 1344| 错误码ID | 错误信息 | 1345| -------- | ---------------------------------------- | 1346| 201 | Permission denied. | 1347| 202 | Called by non-system application. | 1348| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. | 1349| 14000011 | Internal system error. | 1350 1351**示例:** 1352 1353```ts 1354async function example() { 1355 console.info('grantPhotoUriPermissionDemo'); 1356 1357 try { 1358 let result = await phAccessHelper.grantPhotoUriPermission('com.example.myapplication01', 1359 'file://media/Photo/1/IMG_datetime_0001/displayName.jpg', 1360 photoAccessHelper.PhotoPermissionType.TEMPORARY_READ_IMAGEVIDEO, 1361 photoAccessHelper.HideSensitiveType.HIDE_LOCATION_AND_SHOTING_PARM); 1362 1363 console.info('grantPhotoUriPermission success, result=' + result); 1364 } catch (err) { 1365 console.error('grantPhotoUriPermission failed, error=' + err); 1366 } 1367} 1368``` 1369 1370### grantPhotoUrisPermission<sup>12+</sup> 1371 1372grantPhotoUrisPermission(appid: string, uriList: Array<string>, photoPermissionType: PhotoPermissionType, hideSensitiveType: HideSensitiveType): Promise<number> 1373 1374给应用授予uri列表的访问权限,使用Promise方式返回结果。 1375 1376**系统接口**:此接口为系统接口。 1377 1378**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1379 1380**需要权限:** ohos.permission.WRITE_IMAGEVIDEO 1381 1382**参数:** 1383 1384| 参数名 | 类型 | 必填 | 说明 | 1385| -------- |----------------------------------------------------------------------| ---- | ------------------------- | 1386| appid | string | 是 | 应用标识,将访问权限授予给appid标识的应用。 | 1387| uriList | Array<string> | 是 | 媒体资源的uri列表,uri列表中的资源的访问权限将授予给应用。uri列表最多容纳 1000 条uri。| 1388| photoPermissionType | [PhotoPermissionType](#photopermissiontype12) | 是 | 权限类型,将photoPermissionType表示的权限授予给应用。权限的覆盖规则参考枚举类。| 1389| hideSensitiveType | [HideSensitiveType](#hidesensitivetype12) | 是 | 脱敏类型,预留参数,目前可传枚举类中任一值。| 1390 1391**返回值:** 1392 1393| 类型 | 说明 | 1394| --------------------------------------- | ----------------- | 1395| Promise<number> | Promise对象,0: 授权成功。 -1:授权失败。| 1396 1397**错误码:** 1398 1399接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1400 1401| 错误码ID | 错误信息 | 1402| -------- | ---------------------------------------- | 1403| 201 | Permission denied. | 1404| 202 | Called by non-system application. | 1405| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. | 1406| 14000011 | Internal system error. | 1407 1408**示例:** 1409 1410```ts 1411async function example() { 1412 console.info('grantPhotoUrisPermissionDemo'); 1413 1414 try { 1415 // 媒体资源的uri列表 1416 let uris: Array<string> = [ 1417 'file://media/Photo/11/IMG_datetime_0001/displayName1.jpg', 1418 'file://media/Photo/22/IMG_datetime_0002/displayName2.jpg']; 1419 let result = await phAccessHelper.grantPhotoUrisPermission('com.example.myapplication01', uris, 1420 photoAccessHelper.PhotoPermissionType.TEMPORARY_READ_IMAGEVIDEO, 1421 photoAccessHelper.HideSensitiveType.HIDE_LOCATION_AND_SHOTING_PARM); 1422 1423 console.info('grantPhotoUrisPermission success, result=' + result); 1424 } catch (err) { 1425 console.error('grantPhotoUrisPermission failed, error=' + err); 1426 } 1427} 1428``` 1429 1430### cancelPhotoUriPermission<sup>12+</sup> 1431 1432cancelPhotoUriPermission(appid: string, uri: string, photoPermissionType: PhotoPermissionType): Promise<number> 1433 1434取消应用对uri的访问权限,使用Promise方式返回结果。 1435 1436**系统接口**:此接口为系统接口。 1437 1438**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1439 1440**需要权限:** ohos.permission.WRITE_IMAGEVIDEO 1441 1442**参数:** 1443 1444| 参数名 | 类型 | 必填 | 说明 | 1445| -------- |----------------------------------------------------------------------| ---- | ------------------------- | 1446| appid | string | 是 | 应用标识,将取消appid标识应用对媒体资源的访问权限。 | 1447| uri | string | 是 | 媒体资源的uri,取消应用对uri表示的资源的访问权限。| 1448| photoPermissionType | [PhotoPermissionType](#photopermissiontype12) | 是 | 权限类型,取消应用对媒体资源的访问权限为photoPermissionType。| 1449 1450**返回值:** 1451 1452| 类型 | 说明 | 1453| --------------------------------------- | ----------------- | 1454| Promise<number> | Promise对象,0:取消成功。-1:取消失败。| 1455 1456**错误码:** 1457 1458接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1459 1460| 错误码ID | 错误信息 | 1461| -------- | ---------------------------------------- | 1462| 201 | Permission denied. | 1463| 202 | Called by non-system application. | 1464| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. | 1465| 14000011 | Internal system error. | 1466 1467**示例:** 1468 1469```ts 1470async function example() { 1471 console.info('cancelPhotoUriPermissionDemo'); 1472 1473 try { 1474 let result = await phAccessHelper.cancelPhotoUriPermission('com.example.myapplication01', 1475 'file://media/Photo/11/IMG_datetime_0001/displayName.jpg', 1476 photoAccessHelper.PhotoPermissionType.TEMPORARY_READ_IMAGEVIDEO); 1477 1478 console.info('cancelPhotoUriPermission success, result=' + result); 1479 } catch (err) { 1480 console.error('cancelPhotoUriPermission failed, error=' + err); 1481 } 1482} 1483``` 1484 1485### createAssetsForAppWithMode<sup>12+</sup> 1486 1487createAssetsForAppWithMode(boundleName: string, appName: string, appId: string, tokenId: number, authorizationMode: AuthorizationMode, photoCreationConfigs:Array\<PhotoCreationConfig>): Promise\<Array\<string>> 1488 1489提供给应用保存短时授权,使用Promise方式返回结果。 1490 1491**系统接口**:此接口为系统接口。 1492 1493**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1494 1495**需要权限:** ohos.permission.WRITE_IMAGEVIDEO 1496 1497**参数:** 1498 1499| 参数名 | 类型 | 必填 | 说明 | 1500| -------- |----------------------------------------------------------------------| ---- | ------------------------- | 1501| boundleName| string | 是 | 需要保存图片/视频文件的应用boundleName。 | 1502| appName| string | 是 | 需要保存图片/视频文件的应用appName。| 1503| appId| string | 是 | 需要保存图片/视频文件的应用app id。 | 1504| tokenId| number| 是 | 需要短时授权应用的唯一标识。 | 1505| authorizationMode| [AuthorizationMode](#authorizationmode12)| 是 | 授权模式。授予应用短期内再次保存无需重复弹框确认。 | 1506| PhotoCreationConfig| Array\<[PhotoCreationConfig](js-apis-photoAccessHelper.md#photocreationconfig12)> | 是 | 保存图片/视频到媒体库的配置。| 1507 1508**返回值:** 1509 1510| 类型 | 说明 | 1511| --------------------------------------- | ----------------- | 1512| Promise\<Array\<string>> | Promise对象,返回给接口调用方的媒体库文件uri列表。Uri已对appId对应的应用授权,支持应用写入数据。| 1513 1514**错误码:** 1515 1516接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1517 1518| 错误码ID | 错误信息 | 1519| -------- | ---------------------------------------- | 1520| 201 | Permission denied. | 1521| 202 | Called by non-system application. | 1522| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. | 1523| 14000011 | Internal system error. | 1524 1525**示例:** 1526 1527```ts 1528async function example() { 1529 console.info('createAssetsForAppWithModeDemo.'); 1530 1531 try { 1532 let photoCreationConfigs: Array<photoAccessHelper.PhotoCreationConfig> = [ 1533 { 1534 title: '123456', 1535 fileNameExtension: 'jpg', 1536 photoType: photoAccessHelper.PhotoType.IMAGE, 1537 subtype: photoAccessHelper.PhotoSubtype.DEFAULT, 1538 } 1539 ]; 1540 let bundleName: string = 'testBundleName'; 1541 let appName: string = 'testAppName'; 1542 let appId: string = 'testAppId'; 1543 let tokenId: number = 537197950; 1544 let authorizationMode: photoAccessHelper.AuthorizationMode = photoAccessHelper.AuthorizationMode.SHORT_TIME_AUTHORIZATION; 1545 let result: Array<string> = await phAccessHelper.createAssetsForAppWithMode(bundleName, appName, appId, tokenId, authorizationMode, photoCreationConfigs); 1546 console.info(`result: ${JSON.stringify(result)}`); 1547 console.info('Photo createAssetsForAppWithMode success.'); 1548 } catch (err) { 1549 console.error(`createAssetsForAppWithMode failed with error: ${err.code}, ${err.message}`); 1550 } 1551} 1552``` 1553 1554## PhotoAsset 1555 1556提供封装文件属性的方法。 1557 1558### open<sup>(deprecated)</sup> 1559 1560open(mode: string, callback: AsyncCallback<number>): void 1561 1562打开当前文件,使用callback方式返回异步结果。 1563 1564> **说明:** 1565> 1566> 从API version 10开始支持,从API version 11开始废弃。出于安全考量,不再提供获取正式媒体文件句柄的接口。 1567 1568**注意**:当前此(写)操作是互斥的操作,返回的文件描述符在使用完毕后需要调用close进行释放。 1569 1570**系统接口**:此接口为系统接口。 1571 1572**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.WRITE_IMAGEVIDEO 1573 1574**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1575 1576**参数:** 1577 1578| 参数名 | 类型 | 必填 | 说明 | 1579| -------- | --------------------------- | ---- | ----------------------------------- | 1580| mode | string | 是 | 打开文件方式,分别为:'r'(只读), 'w'(只写), 'rw'(读写)。 | 1581| callback | AsyncCallback<number> | 是 | callback返回文件描述符。 | 1582 1583**错误码:** 1584 1585接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1586 1587| 错误码ID | 错误信息 | 1588| -------- | ---------------------------------------- | 1589| 202 | Called by non-system application. | 1590| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1591| 13900012 | Permission denied. | 1592| 13900020 | Invalid argument. | 1593| 14000011 | System inner fail. | 1594 1595**示例:** 1596 1597```ts 1598async function example() { 1599 console.info('Open demo'); 1600 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 1601 let photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName); 1602 photoAsset.open('rw', (err, fd) => { 1603 if (fd !== undefined) { 1604 console.info('File fd' + fd); 1605 photoAsset.close(fd); 1606 } else { 1607 console.error(`Open file err: ${err.code}, ${err.message}`); 1608 } 1609 }); 1610} 1611``` 1612 1613### open<sup>(deprecated)</sup> 1614 1615open(mode: string): Promise<number> 1616 1617打开当前文件,使用promise方式返回异步结果。 1618 1619> **说明:** 1620> 1621> 从API version 10开始支持,从API version 11开始废弃。出于安全考量,不再提供获取正式媒体文件句柄的接口。 1622 1623**注意**:当前此(写)操作是互斥的操作,返回的文件描述符在使用完毕后需要调用close进行释放。 1624 1625**系统接口**:此接口为系统接口。 1626 1627**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.WRITE_IMAGEVIDEO 1628 1629**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1630 1631**参数:** 1632 1633| 参数名 | 类型 | 必填 | 说明 | 1634| ---- | ------ | ---- | ----------------------------------- | 1635| mode | string | 是 | 打开文件方式,分别为:'r'(只读), 'w'(只写), 'rw'(读写)。 | 1636 1637**返回值:** 1638 1639| 类型 | 说明 | 1640| --------------------- | ------------- | 1641| Promise<number> | Promise对象,返回文件描述符。 | 1642 1643**错误码:** 1644 1645接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1646 1647| 错误码ID | 错误信息 | 1648| -------- | ---------------------------------------- | 1649| 202 | Called by non-system application. | 1650| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1651| 13900012 | Permission denied. | 1652| 13900020 | Invalid argument. | 1653| 14000011 | System inner fail. | 1654 1655**示例:** 1656 1657```ts 1658async function example() { 1659 console.info('Open demo'); 1660 try { 1661 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 1662 let photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName); 1663 let fd: number = await photoAsset.open('rw'); 1664 if (fd !== undefined) { 1665 console.info('File fd' + fd); 1666 photoAsset.close(fd); 1667 } else { 1668 console.error('Open file fail'); 1669 } 1670 } catch (err) { 1671 console.error(`Open demo err: ${err.code}, ${err.message}`); 1672 } 1673} 1674``` 1675 1676### setFavorite<sup>(deprecated)</sup> 1677 1678setFavorite(favoriteState: boolean, callback: AsyncCallback<void>): void 1679 1680将文件设置为收藏文件,使用callback方式返回异步结果。 1681 1682> **说明:** 1683> 1684> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setFavorite](#setfavorite11)替代。 1685 1686**系统接口**:此接口为系统接口。 1687 1688**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1689 1690**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1691 1692**参数:** 1693 1694| 参数名 | 类型 | 必填 | 说明 | 1695| ---------- | ------------------------- | ---- | ---------------------------------- | 1696| favoriteState | boolean | 是 | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏。 | 1697| callback | AsyncCallback<void> | 是 | callback返回void。 | 1698 1699**错误码:** 1700 1701接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1702 1703| 错误码ID | 错误信息 | 1704| -------- | ---------------------------------------- | 1705| 202 | Called by non-system application. | 1706| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1707| 13900012 | Permission denied. | 1708| 13900020 | Invalid argument. | 1709| 14000011 | System inner fail. | 1710 1711**示例:** 1712 1713```ts 1714import { dataSharePredicates } from '@kit.ArkData'; 1715 1716async function example() { 1717 console.info('setFavoriteDemo'); 1718 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1719 let fetchOption: photoAccessHelper.FetchOptions = { 1720 fetchColumns: [], 1721 predicates: predicates 1722 }; 1723 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 1724 let asset = await fetchResult.getFirstObject(); 1725 asset.setFavorite(true, (err) => { 1726 if (err === undefined) { 1727 console.info('favorite successfully'); 1728 } else { 1729 console.error(`favorite failed with error: ${err.code}, ${err.message}`); 1730 } 1731 }); 1732} 1733``` 1734 1735### setFavorite<sup>(deprecated)</sup> 1736 1737setFavorite(favoriteState: boolean): Promise<void> 1738 1739将文件设置为收藏文件,使用promise方式返回异步结果。 1740 1741> **说明:** 1742> 1743> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setFavorite](#setfavorite11)替代。 1744 1745**系统接口**:此接口为系统接口。 1746 1747**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1748 1749**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1750 1751**参数:** 1752 1753| 参数名 | 类型 | 必填 | 说明 | 1754| ---------- | ------- | ---- | ---------------------------------- | 1755| favoriteState | boolean | 是 | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏。 | 1756 1757**返回值:** 1758 1759| 类型 | 说明 | 1760| ------------------- | ---------- | 1761| Promise<void> | Promise对象,返回void。 | 1762 1763**错误码:** 1764 1765接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1766 1767| 错误码ID | 错误信息 | 1768| -------- | ---------------------------------------- | 1769| 202 | Called by non-system application. | 1770| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1771| 13900012 | Permission denied. | 1772| 13900020 | Invalid argument. | 1773| 14000011 | System inner fail. | 1774 1775**示例:** 1776 1777```ts 1778import { dataSharePredicates } from '@kit.ArkData'; 1779import { BusinessError } from '@kit.BasicServicesKit'; 1780 1781async function example() { 1782 console.info('setFavoriteDemo'); 1783 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1784 let fetchOption: photoAccessHelper.FetchOptions = { 1785 fetchColumns: [], 1786 predicates: predicates 1787 }; 1788 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 1789 let asset = await fetchResult.getFirstObject(); 1790 asset.setFavorite(true).then(() => { 1791 console.info('setFavorite successfully'); 1792 }).catch((err: BusinessError) => { 1793 console.error(`setFavorite failed with error: ${err.code}, ${err.message}`); 1794 }); 1795} 1796``` 1797 1798### setHidden<sup>(deprecated)</sup> 1799 1800setHidden(hiddenState: boolean, callback: AsyncCallback<void>): void 1801 1802将文件设置为隐私文件,使用callback方式返回异步结果。 1803 1804隐私文件存在隐私相册中,用户通过隐私相册去获取隐私文件后可以通过设置hiddenState为false来从隐私相册中移除。 1805 1806> **说明:** 1807> 1808> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setHidden](#sethidden11)替代。 1809 1810**系统接口**:此接口为系统接口。 1811 1812**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1813 1814**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1815 1816**参数:** 1817 1818| 参数名 | 类型 | 必填 | 说明 | 1819| ---------- | ------------------------- | ---- | ---------------------------------- | 1820| hiddenState | boolean | 是 | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 | 1821| callback | AsyncCallback<void> | 是 | callback返回void。 | 1822 1823**错误码:** 1824 1825接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1826 1827| 错误码ID | 错误信息 | 1828| -------- | ---------------------------------------- | 1829| 202 | Called by non-system application. | 1830| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1831| 13900012 | Permission denied. | 1832| 13900020 | Invalid argument. | 1833| 14000011 | System inner fail. | 1834 1835**示例:** 1836 1837```ts 1838import { dataSharePredicates } from '@kit.ArkData'; 1839 1840async function example() { 1841 console.info('setHiddenDemo'); 1842 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1843 let fetchOption: photoAccessHelper.FetchOptions = { 1844 fetchColumns: [], 1845 predicates: predicates 1846 }; 1847 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 1848 let asset = await fetchResult.getFirstObject(); 1849 asset.setHidden(true, (err) => { 1850 if (err === undefined) { 1851 console.info('setHidden successfully'); 1852 } else { 1853 console.error(`setHidden failed with error: ${err.code}, ${err.message}`); 1854 } 1855 }); 1856} 1857``` 1858 1859### setHidden<sup>(deprecated)</sup> 1860 1861setHidden(hiddenState: boolean): Promise<void> 1862 1863将文件设置为隐私文件,使用promise方式返回异步结果。 1864 1865隐私文件存在隐私相册中,用户通过隐私相册去获取隐私文件后可以通过设置hiddenState为false来从隐私相册中移除。 1866 1867> **说明:** 1868> 1869> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setHidden](#sethidden11)替代。 1870 1871**系统接口**:此接口为系统接口。 1872 1873**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1874 1875**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1876 1877**参数:** 1878 1879| 参数名 | 类型 | 必填 | 说明 | 1880| ---------- | ------- | ---- | ---------------------------------- | 1881| hiddenState | boolean | 是 | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 | 1882 1883**返回值:** 1884 1885| 类型 | 说明 | 1886| ------------------- | ---------- | 1887| Promise<void> | Promise对象,返回void。 | 1888 1889**错误码:** 1890 1891接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1892 1893| 错误码ID | 错误信息 | 1894| -------- | ---------------------------------------- | 1895| 202 | Called by non-system application. | 1896| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 1897| 13900012 | Permission denied. | 1898| 13900020 | Invalid argument. | 1899| 14000011 | System inner fail. | 1900 1901**示例:** 1902 1903```ts 1904import { dataSharePredicates } from '@kit.ArkData'; 1905import { BusinessError } from '@kit.BasicServicesKit'; 1906 1907async function example() { 1908 // 示例代码为将文件从隐藏相册中恢复,需要先在隐藏相册预置资源 1909 console.info('setHiddenDemo'); 1910 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1911 let fetchOption: photoAccessHelper.FetchOptions = { 1912 fetchColumns: [], 1913 predicates: predicates 1914 }; 1915 let albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.HIDDEN); 1916 let album = await albumList.getFirstObject(); 1917 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption); 1918 let asset = await fetchResult.getFirstObject(); 1919 asset.setHidden(false).then(() => { 1920 console.info('setHidden successfully'); 1921 }).catch((err: BusinessError) => { 1922 console.error(`setHidden failed with error: ${err.code}, ${err.message}`); 1923 }); 1924} 1925``` 1926 1927### getExif 1928 1929getExif(): Promise<string> 1930 1931返回jpg格式图片Exif标签组成的json格式的字符串,该方法使用Promise方式返回结果。 1932 1933此接口中获取的Exif标签信息是由[image](../apis-image-kit/js-apis-image.md)模块提供。Exif标签详细信息请参考[image.PropertyKey](../apis-image-kit/js-apis-image.md#propertykey7)。 1934 1935**注意**:此接口返回的是Exif标签组成的json格式的字符串,完整Exif信息由all_exif与[PhotoKeys.USER_COMMENT](#photokeys)组成,fetchColumns需要传入这两个字段。 1936 1937**系统接口**:此接口为系统接口。 1938 1939**需要权限**:ohos.permission.READ_IMAGEVIDEO 1940 1941**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1942 1943**返回值:** 1944 1945| 类型 | 说明 | 1946| --------------------------------------- | ----------------- | 1947| Promise<string> | 返回Exif标签组成的json格式的字符串。 | 1948 1949**错误码:** 1950 1951接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1952 1953| 错误码ID | 错误信息 | 1954| -------- | ---------------------------------------- | 1955| 202 | Called by non-system application. | 1956| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 1957| 13900012 | Permission denied. | 1958| 13900020 | Invalid argument. | 1959| 14000011 | System inner fail. | 1960 1961**示例:** 1962 1963```ts 1964import { dataSharePredicates } from '@kit.ArkData'; 1965 1966async function example() { 1967 try { 1968 console.info('getExifDemo'); 1969 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1970 let fetchOptions: photoAccessHelper.FetchOptions = { 1971 fetchColumns: [ 'all_exif', photoAccessHelper.PhotoKeys.USER_COMMENT], 1972 predicates: predicates 1973 }; 1974 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 1975 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 1976 let exifMessage = await photoAsset.getExif(); 1977 let userCommentKey = 'UserComment'; 1978 let userComment = JSON.stringify(JSON.parse(exifMessage), [userCommentKey]); 1979 console.info('getExifDemo userComment: ' + JSON.stringify(userComment)); 1980 fetchResult.close(); 1981 } catch (err) { 1982 console.error(`getExifDemoCallback failed with error: ${err.code}, ${err.message}`); 1983 } 1984} 1985``` 1986 1987### getExif 1988 1989getExif(callback: AsyncCallback<string>): void 1990 1991返回jpg格式图片Exif标签组成的json格式的字符串,使用callback方式返回异步结果。 1992 1993此接口中获取的Exif标签信息是由[image](../apis-image-kit/js-apis-image.md)模块提供。Exif标签详细信息请参考[image.PropertyKey](../apis-image-kit/js-apis-image.md#propertykey7)。 1994 1995**注意**:此接口返回的是Exif标签组成的json格式的字符串,完整Exif信息由all_exif与[PhotoKeys.USER_COMMENT](#photokeys)组成,fetchColumns需要传入这两个字段。 1996 1997**系统接口**:此接口为系统接口。 1998 1999**需要权限**:ohos.permission.READ_IMAGEVIDEO 2000 2001**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2002 2003**参数:** 2004 2005| 参数名 | 类型 | 必填 | 说明 | 2006| -------- | ------------------------- | ---- | ---------- | 2007| callback | AsyncCallback<string> | 是 | 返回Exif字段组成的json格式的字符串。 | 2008 2009**错误码:** 2010 2011接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2012 2013| 错误码ID | 错误信息 | 2014| -------- | ---------------------------------------- | 2015| 202 | Called by non-system application. | 2016| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2017| 13900012 | Permission denied. | 2018| 13900020 | Invalid argument. | 2019| 14000011 | System inner fail. | 2020 2021**示例:** 2022 2023```ts 2024import { dataSharePredicates } from '@kit.ArkData'; 2025 2026async function example() { 2027 try { 2028 console.info('getExifDemo'); 2029 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2030 predicates.isNotNull('all_exif') 2031 let fetchOptions: photoAccessHelper.FetchOptions = { 2032 fetchColumns: ['all_exif', photoAccessHelper.PhotoKeys.USER_COMMENT], 2033 predicates: predicates 2034 }; 2035 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2036 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2037 console.info('getExifDemo photoAsset displayName: ' + JSON.stringify(photoAsset.displayName)); 2038 let userCommentKey = 'UserComment'; 2039 photoAsset.getExif((err, exifMessage) => { 2040 if (exifMessage !== undefined) { 2041 let userComment = JSON.stringify(JSON.parse(exifMessage), [userCommentKey]); 2042 console.info('getExifDemo userComment: ' + JSON.stringify(userComment)); 2043 } else { 2044 console.error(`getExif failed, error: ${err.code}, ${err.message}`); 2045 } 2046 }); 2047 fetchResult.close(); 2048 } catch (err) { 2049 console.error(`getExifDemoCallback failed with error: ${err.code}, ${err.message}`); 2050 } 2051} 2052``` 2053 2054### setUserComment<sup>(deprecated)</sup> 2055 2056setUserComment(userComment: string): Promise<void> 2057 2058修改图片或者视频的备注信息,该方法使用Promise来返回结果。 2059 2060> **说明:** 2061> 2062> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setUserComment](#setusercomment11)替代。 2063 2064**注意**:此接口只可修改图片或者视频的备注信息。 2065 2066**系统接口**:此接口为系统接口。 2067 2068**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2069 2070**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2071 2072**参数:** 2073 2074| 参数名 | 类型 | 必填 | 说明 | 2075| -------- | ------------------------- | ---- | ---------- | 2076| userComment | string | 是 | 待修改的图片或视频的备注信息,备注信息最长为420字符。 | 2077 2078**返回值:** 2079 2080| 类型 | 说明 | 2081| --------------------------------------- | ----------------- | 2082|Promise<void> | Promise对象,返回void。 | 2083 2084**错误码:** 2085 2086接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2087 2088| 错误码ID | 错误信息 | 2089| -------- | ---------------------------------------- | 2090| 202 | Called by non-system application. | 2091| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 2092| 13900012 | Permission denied. | 2093| 13900020 | Invalid argument. | 2094| 14000011 | System inner fail. | 2095 2096**示例:** 2097 2098```ts 2099import { dataSharePredicates } from '@kit.ArkData'; 2100 2101async function example() { 2102 try { 2103 console.info('setUserCommentDemo') 2104 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2105 let fetchOptions: photoAccessHelper.FetchOptions = { 2106 fetchColumns: [], 2107 predicates: predicates 2108 }; 2109 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2110 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2111 let userComment = 'test_set_user_comment'; 2112 await photoAsset.setUserComment(userComment); 2113 } catch (err) { 2114 console.error(`setUserCommentDemoPromise failed with error: ${err.code}, ${err.message}`); 2115 } 2116} 2117``` 2118 2119### setUserComment<sup>(deprecated)</sup> 2120 2121setUserComment(userComment: string, callback: AsyncCallback<void>): void 2122 2123修改图片或者视频的备注信息,该方法使用callback形式来返回结果。 2124 2125> **说明:** 2126> 2127> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setUserComment](#setusercomment11)替代。 2128 2129**注意**:此接口只可修改图片或者视频的备注信息。 2130 2131**系统接口**:此接口为系统接口。 2132 2133**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2134 2135**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2136 2137**参数:** 2138 2139| 参数名 | 类型 | 必填 | 说明 | 2140| -------- | ------------------------- | ---- | ---------- | 2141| userComment | string | 是 | 待修改的图片或视频的备注信息,备注信息最长为420字符。 | 2142| callback | AsyncCallback<void> | 是 | callback返回void。 | 2143 2144**错误码:** 2145 2146接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2147 2148| 错误码ID | 错误信息 | 2149| -------- | ---------------------------------------- | 2150| 202 | Called by non-system application. | 2151| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 2152| 13900012 | Permission denied. | 2153| 13900020 | Invalid argument. | 2154| 14000011 | System inner fail. | 2155 2156**示例:** 2157 2158```ts 2159import { dataSharePredicates } from '@kit.ArkData'; 2160 2161async function example() { 2162 try { 2163 console.info('setUserCommentDemo') 2164 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2165 let fetchOptions: photoAccessHelper.FetchOptions = { 2166 fetchColumns: [], 2167 predicates: predicates 2168 }; 2169 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2170 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2171 let userComment = 'test_set_user_comment'; 2172 photoAsset.setUserComment(userComment, (err) => { 2173 if (err === undefined) { 2174 console.info('setUserComment successfully'); 2175 } else { 2176 console.error(`setUserComment failed with error: ${err.code}, ${err.message}`); 2177 } 2178 }); 2179 } catch (err) { 2180 console.error(`setUserCommentDemoCallback failed with error: ${err.code}, ${err.message}`); 2181 } 2182} 2183``` 2184 2185### setPending<sup>11+</sup> 2186 2187setPending(pendingState: boolean, callback: AsyncCallback<void>): void 2188 2189为图片或视频资源设置pending状态,该方法使用callback形式来返回结果。 2190 2191将文件通过`setPending(true)`设置为pending状态后,只能通过`setPending(false)`解除pending状态。可以通过`photoAsset.get(photoAccessHelper.PhotoKeys.PENDING)`的方式获取是否为pending状态,pending状态下返回true,否则返回false。 2192 2193**注意**:setPending只能在文件的创建期使用,在文件的首次创建流程的close之后,无法通过setPending(true)将文件设置为pending状态。 2194 2195**系统接口**:此接口为系统接口。 2196 2197**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2198 2199**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2200 2201**参数:** 2202 2203| 参数名 | 类型 | 必填 | 说明 | 2204| ---------- | ------- | ---- | ---------------------------------- | 2205| pendingState | boolean | 是 | 设置的pending状态,true为设置pending状态,false为解除pending状态 | 2206| callback | AsyncCallback<void> | 是 | Callback对象,返回void | 2207 2208**错误码:** 2209 2210接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2211 2212| 错误码ID | 错误信息 | 2213| -------- | ---------------------------------------- | 2214| 201 | Permission denied. | 2215| 202 | Called by non-system application. | 2216| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 2217| 14000011 | System inner fail. | 2218 2219**示例:** 2220 2221```ts 2222async function example() { 2223 try { 2224 console.info('setPendingCallbackDemo'); 2225 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 2226 let photoAsset = await phAccessHelper.createAsset(testFileName); 2227 let fd = await photoAsset.open('rw'); 2228 photoAsset.setPending(true, async (err) => { 2229 if (err !== undefined) { 2230 console.error(`setPending(true) failed with error: ${err.code}, ${err.message}`); 2231 return; 2232 } 2233 // write photo buffer in fd 2234 photoAsset.setPending(false, async (err) => { 2235 if (err !== undefined) { 2236 console.error(`setPending(false) failed with error: ${err.code}, ${err.message}`); 2237 return; 2238 } 2239 await photoAsset.close(fd); 2240 }); 2241 }); 2242 } catch (err) { 2243 console.error(`setPendingCallbackDemo failed with error: ${err.code}, ${err.message}`); 2244 } 2245} 2246``` 2247 2248### setPending<sup>11+</sup> 2249 2250setPending(pendingState: boolean): Promise<void> 2251 2252为图片或视频资源设置pending状态,该方法使用promise形式来返回结果。 2253 2254将文件通过`setPending(true)`设置为pending状态后,只能通过`setPending(false)`解除pending状态。可以通过`photoAsset.get(photoAccessHelper.PhotoKeys.PENDING)`的方式获取是否为pending状态,pending状态下返回true,否则返回false。 2255 2256**注意**:setPending只能在文件的创建期使用,在文件的首次创建流程的close之后,无法通过setPending(true)将文件设置为pending状态。 2257 2258**系统接口**:此接口为系统接口。 2259 2260**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2261 2262**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2263 2264**参数:** 2265 2266| 参数名 | 类型 | 必填 | 说明 | 2267| ---------- | ------- | ---- | ---------------------------------- | 2268| pendingState | boolean | 是 | 设置的pending状态,true为设置pending状态,false为解除pending状态。 | 2269 2270**返回值:** 2271 2272| 类型 | 说明 | 2273| --------------------------------------- | ----------------- | 2274|Promise<boolean> | Promise对象,返回void。 | 2275 2276**错误码:** 2277 2278接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2279 2280| 错误码ID | 错误信息 | 2281| -------- | ---------------------------------------- | 2282| 201 | Permission denied. | 2283| 202 | Called by non-system application. | 2284| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 2285| 14000011 | System inner fail. | 2286 2287**示例:** 2288 2289```ts 2290async function example() { 2291 try { 2292 console.info('setPendingPromiseDemo'); 2293 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 2294 let photoAsset = await phAccessHelper.createAsset(testFileName); 2295 let fd = await photoAsset.open('rw'); 2296 await photoAsset.setPending(true); 2297 // write photo buffer in fd 2298 photoAsset.setPending(false); 2299 await photoAsset.close(fd); 2300 } catch (err) { 2301 console.error(`setPendingPromiseDemo failed with error: ${err.code}, ${err.message}`); 2302 } 2303} 2304``` 2305 2306### isEdited<sup>11+</sup> 2307 2308isEdited(callback: AsyncCallback<boolean>): void 2309 2310查询图片或视频资源是否被编辑过,该方法使用callback形式来返回结果。 2311 2312**系统接口**:此接口为系统接口。 2313 2314**需要权限**:ohos.permission.READ_IMAGEVIDEO 2315 2316**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2317 2318**参数:** 2319 2320| 参数名 | 类型 | 必填 | 说明 | 2321| ---------- | ------- | ---- | ---------------------------------- | 2322| callback | AsyncCallback<boolean> | 是 | Callback对象,返回图片或视频资源是否被编辑过 | 2323 2324**错误码:** 2325 2326接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2327 2328| 错误码ID | 错误信息 | 2329| -------- | ---------------------------------------- | 2330| 201 | Permission denied. | 2331| 202 | Called by non-system application. | 2332| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2333| 14000011 | System inner fail. | 2334 2335**示例:** 2336 2337```ts 2338import { dataSharePredicates } from '@kit.ArkData'; 2339 2340async function example() { 2341 try { 2342 console.info('isEditedCallbackDemo') 2343 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2344 let fetchOptions: photoAccessHelper.FetchOptions = { 2345 fetchColumns: [], 2346 predicates: predicates 2347 }; 2348 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2349 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2350 photoAsset.isEdited((err, isEdited) => { 2351 if (err === undefined) { 2352 if (isEdited === true) { 2353 console.info('Photo is edited'); 2354 } else { 2355 console.info('Photo is not edited'); 2356 } 2357 } else { 2358 console.error(`isEdited failed with error: ${err.code}, ${err.message}`); 2359 } 2360 }); 2361 } catch (err) { 2362 console.error(`isEditedDemoCallback failed with error: ${err.code}, ${err.message}`); 2363 } 2364} 2365``` 2366 2367### isEdited<sup>11+</sup> 2368 2369isEdited(): Promise<boolean> 2370 2371查询图片或视频资源是否被编辑过,该方法使用promise形式来返回结果。 2372 2373**系统接口**:此接口为系统接口。 2374 2375**需要权限**:ohos.permission.READ_IMAGEVIDEO 2376 2377**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2378 2379**返回值:** 2380 2381| 类型 | 说明 | 2382| --------------------------------------- | ----------------- | 2383|Promise<boolean> | Promise对象,返回图片或视频资源是否被编辑过。 | 2384 2385 2386**错误码:** 2387 2388接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2389 2390| 错误码ID | 错误信息 | 2391| -------- | ---------------------------------------- | 2392| 201 | Permission denied. | 2393| 202 | Called by non-system application. | 2394| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2395| 14000011 | System inner fail. | 2396 2397**示例:** 2398 2399```ts 2400import { dataSharePredicates } from '@kit.ArkData'; 2401 2402async function example() { 2403 try { 2404 console.info('isEditedPromiseDemo') 2405 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2406 let fetchOptions: photoAccessHelper.FetchOptions = { 2407 fetchColumns: [], 2408 predicates: predicates 2409 }; 2410 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2411 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2412 let isEdited = await photoAsset.isEdited(); 2413 if (isEdited === true) { 2414 console.info('Photo is edited'); 2415 } else { 2416 console.info('Photo is not edited'); 2417 } 2418 } catch (err) { 2419 console.error(`isEditedDemoCallback failed with error: ${err.code}, ${err.message}`); 2420 } 2421} 2422``` 2423 2424### requestEditData<sup>11+</sup> 2425 2426requestEditData(callback: AsyncCallback<string>): void 2427 2428获得图片或视频资源的编辑数据,该方法使用callback形式来返回结果。 2429 2430如果资源未编辑过,则返回一个空字符串。 2431 2432**系统接口**:此接口为系统接口。 2433 2434**需要权限**:ohos.permission.READ_IMAGEVIDEO 2435 2436**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2437 2438**参数:** 2439 2440| 参数名 | 类型 | 必填 | 说明 | 2441| ---------- | ------- | ---- | ---------------------------------- | 2442| callback | AsyncCallback<string> | 是 | Callback对象,返回图片或视频资源的编辑数据 | 2443 2444**错误码:** 2445 2446接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2447 2448| 错误码ID | 错误信息 | 2449| -------- | ---------------------------------------- | 2450| 201 | Permission denied. | 2451| 202 | Called by non-system application. | 2452| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2453| 14000011 | System inner fail. | 2454 2455**示例:** 2456 2457```ts 2458import { dataSharePredicates } from '@kit.ArkData'; 2459 2460async function example() { 2461 try { 2462 console.info('requestEditDataCallbackDemo') 2463 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2464 let fetchOptions: photoAccessHelper.FetchOptions = { 2465 fetchColumns: [], 2466 predicates: predicates 2467 }; 2468 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2469 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2470 photoAsset.requestEditData((err, editdata) => { 2471 if (err === undefined) { 2472 console.info('Editdata is ' + editdata); 2473 } else { 2474 console.error(`requestEditData failed with error: ${err.code}, ${err.message}`); 2475 } 2476 }); 2477 } catch (err) { 2478 console.error(`requestEditDataCallbackDemo failed with error: ${err.code}, ${err.message}`); 2479 } 2480} 2481``` 2482 2483### requestEditData<sup>11+</sup> 2484 2485requestEditData(): Promise<string> 2486 2487获得图片或视频资源的编辑数据,该方法使用promise形式来返回结果。 2488 2489如果资源未编辑过,则返回一个空字符串。 2490 2491**系统接口**:此接口为系统接口。 2492 2493**需要权限**:ohos.permission.READ_IMAGEVIDEO 2494 2495**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2496 2497**返回值:** 2498 2499| 类型 | 说明 | 2500| --------------------------------------- | ----------------- | 2501|Promise<string> | Promise对象,返回图片或视频资源的编辑数据。 | 2502 2503 2504**错误码:** 2505 2506接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2507 2508| 错误码ID | 错误信息 | 2509| -------- | ---------------------------------------- | 2510| 201 | Permission denied. | 2511| 202 | Called by non-system application. | 2512| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2513| 14000011 | System inner fail. | 2514 2515**示例:** 2516 2517```ts 2518import { dataSharePredicates } from '@kit.ArkData'; 2519 2520async function example() { 2521 try { 2522 console.info('requestEditDataPromiseDemo') 2523 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2524 let fetchOptions: photoAccessHelper.FetchOptions = { 2525 fetchColumns: [], 2526 predicates: predicates 2527 }; 2528 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2529 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2530 let editdata: string = await photoAsset.requestEditData(); 2531 console.info('Editdata is ' + editdata); 2532 } catch (err) { 2533 console.error(`requestEditDataPromiseDemo failed with error: ${err.code}, ${err.message}`); 2534 } 2535} 2536``` 2537 2538### getEditData<sup>11+</sup> 2539 2540getEditData(): Promise<MediaAssetEditData> 2541 2542获得资产编辑数据,该方法使用promise形式来返回结果。 2543 2544如果资源未编辑过,则返回的编辑数据的内容为空字符串。 2545 2546**系统接口**:此接口为系统接口。 2547 2548**需要权限**:ohos.permission.READ_IMAGEVIDEO 2549 2550**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2551 2552**返回值:** 2553 2554| 类型 | 说明 | 2555| --------------------------------------- | ----------------- | 2556|Promise<[MediaAssetEditData](#mediaasseteditdata11)> | Promise对象,返回资产编辑数据。 | 2557 2558**错误码:** 2559 2560接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2561 2562| 错误码ID | 错误信息 | 2563| -------- | ---------------------------------------- | 2564| 201 | Permission denied. | 2565| 202 | Called by non-system application. | 2566| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2567| 14000011 | System inner fail. | 2568 2569**示例:** 2570 2571```ts 2572import { dataSharePredicates } from '@kit.ArkData'; 2573 2574async function example() { 2575 try { 2576 console.info('getEditDataDemo') 2577 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2578 let fetchOptions: photoAccessHelper.FetchOptions = { 2579 fetchColumns: [], 2580 predicates: predicates 2581 }; 2582 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2583 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2584 let assetEditData: photoAccessHelper.MediaAssetEditData = await photoAsset.getEditData(); 2585 let data: string = assetEditData.data; 2586 console.info('edit data is ' + data); 2587 } catch (err) { 2588 console.error(`getEditDataDemo failed with error: ${err.code}, ${err.message}`); 2589 } 2590} 2591``` 2592 2593### requestSource<sup>11+</sup> 2594 2595requestSource(callback: AsyncCallback<number>): void 2596 2597打开源文件并返回fd,该方法使用callback形式来返回结果。 2598 2599**系统接口**:此接口为系统接口。 2600 2601**需要权限**:ohos.permission.READ_IMAGEVIDEO 2602 2603**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2604 2605**参数:** 2606 2607| 参数名 | 类型 | 必填 | 说明 | 2608| ---------- | ------- | ---- | ---------------------------------- | 2609| callback | AsyncCallback<number> | 是 | Callback对象,返回源文件fd。 | 2610 2611**错误码:** 2612 2613接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2614 2615| 错误码ID | 错误信息 | 2616| -------- | ---------------------------------------- | 2617| 201 | Permission denied. | 2618| 202 | Called by non-system application. | 2619| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2620| 14000011 | System inner fail. | 2621 2622**示例:** 2623 2624```ts 2625import { dataSharePredicates } from '@kit.ArkData'; 2626 2627async function example() { 2628 try { 2629 console.info('requsetSourceCallbackDemo') 2630 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2631 let fetchOptions: photoAccessHelper.FetchOptions = { 2632 fetchColumns: [], 2633 predicates: predicates 2634 }; 2635 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2636 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2637 photoAsset.requestSource((err, fd) => { 2638 if (err === undefined) { 2639 console.info('Source fd is ' + fd); 2640 } else { 2641 console.error(`requestSource failed with error: ${err.code}, ${err.message}`); 2642 } 2643 }); 2644 } catch (err) { 2645 console.error(`requsetSourceCallbackDemo failed with error: ${err.code}, ${err.message}`); 2646 } 2647} 2648``` 2649 2650### requestSource<sup>11+</sup> 2651 2652requestSource(): Promise<number> 2653 2654打开源文件并返回fd,该方法使用promise形式来返回结果。 2655 2656**系统接口**:此接口为系统接口。 2657 2658**需要权限**:ohos.permission.READ_IMAGEVIDEO 2659 2660**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2661 2662**返回值:** 2663 2664| 类型 | 说明 | 2665| --------------------------------------- | ----------------- | 2666|Promise<number> | Promise对象,返回源文件fd。 | 2667 2668**错误码:** 2669 2670接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2671 2672| 错误码ID | 错误信息 | 2673| -------- | ---------------------------------------- | 2674| 201 | Permission denied. | 2675| 202 | Called by non-system application. | 2676| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2677| 14000011 | System inner fail. | 2678 2679**示例:** 2680 2681```ts 2682import { dataSharePredicates } from '@kit.ArkData'; 2683 2684async function example() { 2685 try { 2686 console.info('requsetSourcePromiseDemo') 2687 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2688 let fetchOptions: photoAccessHelper.FetchOptions = { 2689 fetchColumns: [], 2690 predicates: predicates 2691 }; 2692 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2693 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2694 let fd = await photoAsset.requestSource(); 2695 console.info('Source fd is ' + fd); 2696 } catch (err) { 2697 console.error(`requsetSourcePromiseDemo failed with error: ${err.code}, ${err.message}`); 2698 } 2699} 2700``` 2701 2702### commitEditedAsset<sup>11+</sup> 2703 2704commitEditedAsset(editData: string, uri: string, callback: AsyncCallback<void>) 2705 2706提交编辑数据以及编辑后的图片或视频,该方法使用callback形式来返回结果。 2707 2708通过uri将编辑后的文件传递给媒体库,uri是编辑后的文件在应用沙箱下的FileUri,可参考[FileUri](../apis-core-file-kit/js-apis-file-fileuri.md)。 2709 2710**注意**:新的编辑数据提交后,将覆盖掉原来的编辑数据。 2711 2712**系统接口**:此接口为系统接口。 2713 2714**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2715 2716**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2717 2718**参数:** 2719 2720| 参数名 | 类型 | 必填 | 说明 | 2721| ---------- | ------- | ---- | ---------------------------------- | 2722| editData | string | 是 | 提交的编辑数据。 | 2723| uri | string | 是 | 提交的编辑后的图片或视频,在应用沙箱下的uri。 | 2724| callback | AsyncCallback<void> | 是 | Callback对象,返回void。 | 2725 2726**错误码:** 2727 2728接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2729 2730| 错误码ID | 错误信息 | 2731| -------- | ---------------------------------------- | 2732| 201 | Permission denied. | 2733| 202 | Called by non-system application. | 2734| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 2735| 14000011 | System inner fail. | 2736 2737**示例:** 2738 2739```ts 2740import { dataSharePredicates } from '@kit.ArkData'; 2741 2742async function example() { 2743 try { 2744 console.info('commitEditedAssetCallbackDemo') 2745 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2746 let fetchOptions: photoAccessHelper.FetchOptions = { 2747 fetchColumns: [], 2748 predicates: predicates 2749 }; 2750 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2751 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2752 let editData = '123456'; 2753 let uri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg'; 2754 photoAsset.commitEditedAsset(editData, uri, (err) => { 2755 if (err === undefined) { 2756 console.info('commitEditedAsset is successful'); 2757 } else { 2758 console.error(`commitEditedAsset failed with error: ${err.code}, ${err.message}`); 2759 } 2760 }); 2761 } catch (err) { 2762 console.error(`commitEditedAssetCallbackDemo failed with error: ${err.code}, ${err.message}`); 2763 } 2764} 2765``` 2766 2767### commitEditedAsset<sup>11+</sup> 2768 2769commitEditedAsset(editData: string, uri: string): Promise<void> 2770 2771提交编辑数据以及编辑后的图片或视频,该方法使用promise形式来返回结果。 2772 2773通过uri将编辑后的文件传递给媒体库,uri是编辑后的文件在应用沙箱下的FileUri,可参考[FileUri](../apis-core-file-kit/js-apis-file-fileuri.md)。 2774 2775**注意**:新的编辑数据提交后,将覆盖掉原来的编辑数据。 2776 2777**系统接口**:此接口为系统接口。 2778 2779**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2780 2781**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2782 2783**参数:** 2784 2785| 参数名 | 类型 | 必填 | 说明 | 2786| ---------- | ------- | ---- | ---------------------------------- | 2787| editData | string | 是 | 提交的编辑数据。 | 2788| uri | string | 是 | 提交的编辑后的图片或视频,在应用沙箱下的uri。 | 2789 2790**返回值:** 2791 2792| 类型 | 说明 | 2793| --------------------------------------- | ----------------- | 2794|Promise<void> | Promise对象,返回void。 | 2795 2796**错误码:** 2797 2798接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2799 2800| 错误码ID | 错误信息 | 2801| -------- | ---------------------------------------- | 2802| 201 | Permission denied. | 2803| 202 | Called by non-system application. | 2804| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 2805| 14000011 | System inner fail. | 2806 2807**示例:** 2808 2809```ts 2810import { dataSharePredicates } from '@kit.ArkData'; 2811 2812async function example() { 2813 try { 2814 console.info('commitEditedAssetPromiseDemo') 2815 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2816 let fetchOptions: photoAccessHelper.FetchOptions = { 2817 fetchColumns: [], 2818 predicates: predicates 2819 }; 2820 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2821 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2822 let editData = '123456'; 2823 let uri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg'; 2824 await photoAsset.commitEditedAsset(editData, uri); 2825 console.info('commitEditedAsset is successful'); 2826 } catch (err) { 2827 console.error(`commitEditedAssetPromiseDemo failed with error: ${err.code}, ${err.message}`); 2828 } 2829} 2830``` 2831 2832### revertToOriginal<sup>11+</sup> 2833 2834revertToOriginal(callback: AsyncCallback<void>) 2835 2836回退到编辑前的状态,该方法使用callback形式来返回结果。 2837 2838**注意**:调用该接口后,编辑数据和编辑后的图片或视频资源都将被删除,无法恢复,请谨慎调用。 2839 2840**系统接口**:此接口为系统接口。 2841 2842**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2843 2844**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2845 2846**参数:** 2847 2848| 参数名 | 类型 | 必填 | 说明 | 2849| ---------- | ------- | ---- | ---------------------------------- | 2850| callback | AsyncCallback<void> | 是 | Callback对象,返回void。 | 2851 2852**错误码:** 2853 2854接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2855 2856| 错误码ID | 错误信息 | 2857| -------- | ---------------------------------------- | 2858| 201 | Permission denied. | 2859| 202 | Called by non-system application. | 2860| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2861| 14000011 | System inner fail. | 2862 2863**示例:** 2864 2865```ts 2866import { dataSharePredicates } from '@kit.ArkData'; 2867 2868async function example() { 2869 try { 2870 console.info('revertToOriginalCallbackDemo') 2871 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2872 let fetchOptions: photoAccessHelper.FetchOptions = { 2873 fetchColumns: [], 2874 predicates: predicates 2875 }; 2876 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2877 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2878 photoAsset.revertToOriginal((err) => { 2879 if (err === undefined) { 2880 console.info('revertToOriginal is successful'); 2881 } else { 2882 console.error(`revertToOriginal failed with error: ${err.code}, ${err.message}`); 2883 } 2884 }); 2885 } catch (err) { 2886 console.error(`revertToOriginalCallbackDemo failed with error: ${err.code}, ${err.message}`); 2887 } 2888} 2889``` 2890 2891### revertToOriginal<sup>11+</sup> 2892 2893revertToOriginal(): Promise<void> 2894 2895回退到编辑前的状态,该方法使用promise形式来返回结果。 2896 2897**注意**:调用该接口后,编辑数据和编辑后的图片或视频资源都将被删除,无法恢复,请谨慎调用。 2898 2899**系统接口**:此接口为系统接口。 2900 2901**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2902 2903**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2904 2905**返回值:** 2906 2907| 类型 | 说明 | 2908| --------------------------------------- | ----------------- | 2909|Promise<string> | Promise对象,返回void。 | 2910 2911**错误码:** 2912 2913接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2914 2915| 错误码ID | 错误信息 | 2916| -------- | ---------------------------------------- | 2917| 201 | Permission denied. | 2918| 202 | Called by non-system application. | 2919| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2920| 14000011 | System inner fail. | 2921 2922**示例:** 2923 2924```ts 2925import { dataSharePredicates } from '@kit.ArkData'; 2926 2927async function example() { 2928 try { 2929 console.info('revertToOriginalPromiseDemo') 2930 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2931 let fetchOptions: photoAccessHelper.FetchOptions = { 2932 fetchColumns: [], 2933 predicates: predicates 2934 }; 2935 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2936 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2937 photoAsset.revertToOriginal(); 2938 console.info('revertToOriginal is successful'); 2939 } catch (err) { 2940 console.error(`revertToOriginalPromiseDemo failed with error: ${err.code}, ${err.message}`); 2941 } 2942} 2943``` 2944 2945### requestPhoto<sup>11+</sup> 2946 2947requestPhoto(callback: AsyncCallback<image.PixelMap>): string 2948 2949通过callback的形式,获取资源的快速缩略图和普通缩略图。 2950 2951快速缩略图尺寸为128\*128,普通缩略图尺寸为256\*256。应用调用接口后,callback将返回两次缩略图对象,第一次为快速缩略图,第二次为普通缩略图。 2952 2953**系统接口**:此接口为系统接口。 2954 2955**需要权限**:ohos.permission.READ_IMAGEVIDEO 2956 2957**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2958 2959**参数:** 2960 2961| 参数名 | 类型 | 必填 | 说明 | 2962| ---------- | ------- | ---- | ---------------------------------- | 2963| callback | AsyncCallback<[image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7)> | 是 | Callback对象,返回获取的缩略图,调用2次。 | 2964 2965**返回值:** 2966 2967| 类型 | 说明 | 2968| --------------------------------------- | ----------------- | 2969| string | 本次获取任务的id。 | 2970 2971**错误码:** 2972 2973接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2974 2975| 错误码ID | 错误信息 | 2976| -------- | ---------------------------------------- | 2977| 201 | Permission verification failed, usually the result returned by VerifyAccessToken. | 2978| 202 | Permission verification failed, application which is not a system application uses system API. | 2979| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 2980| 14000011 | System inner fail. | 2981 2982**示例:** 2983 2984```ts 2985import { dataSharePredicates } from '@kit.ArkData'; 2986import { image } from '@kit.ImageKit'; 2987 2988async function example() { 2989 try { 2990 console.info('requestPhotoDemo') 2991 let options: photoAccessHelper.FetchOptions = { 2992 fetchColumns: [], 2993 predicates: new dataSharePredicates.DataSharePredicates() 2994 } 2995 let fetchResult = await phAccessHelper.getAssets(options); 2996 let photoAsset = await fetchResult.getFirstObject(); 2997 let taskId: string = photoAsset.requestPhoto(async (err, pixel: image.PixelMap) => { 2998 if (err === undefined) { 2999 console.info("requestSource in, size: " + JSON.stringify((await pixel.getImageInfo()).size)) 3000 } else { 3001 console.error(`requestSource failed with error: ${err.code}, ${err.message}`); 3002 } 3003 }) 3004 console.info('requestSource taskId: ' + taskId) 3005 } catch (err) { 3006 console.error(`requestPhotoDemo failed with error: ${err.code}, ${err.message}`); 3007 } 3008} 3009``` 3010 3011### requestPhoto<sup>11+</sup> 3012 3013requestPhoto(options: RequestPhotoOptions, callback: AsyncCallback<image.PixelMap>): string 3014 3015通过callback的形式,根据传入的选项,获取资源的缩略图。 3016 3017**系统接口**:此接口为系统接口。 3018 3019**需要权限**:ohos.permission.READ_IMAGEVIDEO 3020 3021**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3022 3023**参数:** 3024 3025| 参数名 | 类型 | 必填 | 说明 | 3026| ---------- | ------- | ---- | ---------------------------------- | 3027| options | [RequestPhotoOptions](#requestphotooptions11) | 是 | 获取资源缩略图的选项。 | 3028| callback | AsyncCallback<[image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7)> | 是 | Callback对象,返回获取的缩略图,根据选项的设置可能调用超过1次。 | 3029 3030**返回值:** 3031 3032| 类型 | 说明 | 3033| --------------------------------------- | ----------------- | 3034| string | 本次获取任务的id。 | 3035 3036**错误码:** 3037 3038接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3039 3040| 错误码ID | 错误信息 | 3041| -------- | ---------------------------------------- | 3042| 201 | Permission verification failed, usually the result returned by VerifyAccessToken. | 3043| 202 | Permission verification failed, application which is not a system application uses system API. | 3044| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3045| 14000011 | System inner fail. | 3046 3047**示例:** 3048 3049```ts 3050import { dataSharePredicates } from '@kit.ArkData'; 3051import { image } from '@kit.ImageKit'; 3052 3053async function example() { 3054 try { 3055 console.info('requestPhotoDemo') 3056 let options: photoAccessHelper.FetchOptions = { 3057 fetchColumns: [], 3058 predicates: new dataSharePredicates.DataSharePredicates() 3059 } 3060 let fetchResult = await phAccessHelper.getAssets(options); 3061 let photoAsset = await fetchResult.getFirstObject(); 3062 let taskId: string = photoAsset.requestPhoto({ 3063 "size": { 3064 "width": 256, 3065 "height": 256 3066 }, 3067 "requestPhotoType": photoAccessHelper.RequestPhotoType.REQUEST_ALL_THUMBNAILS 3068 }, async (err, pixel: image.PixelMap) => { 3069 if (err === undefined) { 3070 console.info("requestSource in, size: " + JSON.stringify((await pixel.getImageInfo()).size)) 3071 } else { 3072 console.error(`requestSource failed with error: ${err.code}, ${err.message}`); 3073 } 3074 }) 3075 console.info('requestSource taskId: ' + taskId) 3076 } catch (err) { 3077 console.error(`requestPhotoDemo failed with error: ${err.code}, ${err.message}`); 3078 } 3079} 3080``` 3081 3082### cancelPhotoRequest<sup>11+</sup> 3083 3084cancelPhotoRequest(requestId: string): void 3085 3086根据id取消指定的获取媒体缩略图的任务。 3087 3088**系统接口**:此接口为系统接口。 3089 3090**需要权限**:ohos.permission.READ_IMAGEVIDEO 3091 3092**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3093 3094**参数:** 3095 3096| 参数名 | 类型 | 必填 | 说明 | 3097| ---------- | ------- | ---- | ---------------------------------- | 3098| requestId | string | 是 | 待取消的获取媒体缩略图的任务id。 | 3099 3100**错误码:** 3101 3102接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3103 3104| 错误码ID | 错误信息 | 3105| -------- | ---------------------------------------- | 3106| 201 | Permission verification failed, usually the result returned by VerifyAccessToken. | 3107| 202 | Permission verification failed, application which is not a system application uses system API. | 3108| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3109| 14000011 | System inner fail. | 3110 3111**示例:** 3112 3113```ts 3114import { dataSharePredicates } from '@kit.ArkData'; 3115import { image } from '@kit.ImageKit'; 3116 3117async function example() { 3118 try { 3119 console.info('cancelPhotoRequestDemo') 3120 let options: photoAccessHelper.FetchOptions = { 3121 fetchColumns: [], 3122 predicates: new dataSharePredicates.DataSharePredicates() 3123 } 3124 let fetchResult = await phAccessHelper.getAssets(options); 3125 let photoAsset = await fetchResult.getFirstObject(); 3126 let taskId: string = photoAsset.requestPhoto({ 3127 "size": { 3128 "width": 256, 3129 "height": 256 3130 }, 3131 "requestPhotoType": photoAccessHelper.RequestPhotoType.REQUEST_ALL_THUMBNAILS 3132 }, async (err, pixel: image.PixelMap) => { 3133 if (err === undefined) { 3134 console.info("requestSource in, size: " + JSON.stringify((await pixel.getImageInfo()).size)) 3135 } else { 3136 console.error(`requestSource failed with error: ${err.code}, ${err.message}`); 3137 } 3138 }) 3139 console.info('requestSource taskId: ' + taskId) 3140 photoAsset.cancelPhotoRequest(taskId); 3141 } catch (err) { 3142 console.error(`cancelPhotoRequestDemo failed with error: ${err.code}, ${err.message}`); 3143 } 3144} 3145``` 3146 3147### getAnalysisData<sup>11+</sup> 3148 3149getAnalysisData(analysisType: AnalysisType): Promise\<string> 3150 3151根据智慧分析类型获取指定分析结果数据。 3152 3153**系统接口**:此接口为系统接口。 3154 3155**需要权限**:ohos.permission.READ\_IMAGEVIDEO 3156 3157**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3158 3159**参数:** 3160 3161| 参数名 | 类型 | 必填 | 说明 | 3162| :----------- | :----------- | :- | :----------- | 3163| analysisType | [AnalysisType](#analysistype11) | 是 | 需要获取的智慧分析类型。 | 3164 3165**错误码:** 3166 3167接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3168 3169| 错误码ID | 错误信息 | 3170| :------- | :-------------------------------- | 3171| 201 | Permission denied. | 3172| 202 | Called by non-system application. | 3173| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3174| 14000011 | System inner fail. | 3175 3176**示例:** 3177 3178```ts 3179import { dataSharePredicates } from '@kit.ArkData'; 3180 3181async function example() { 3182 try { 3183 console.info('getAnalysisDataDemo') 3184 let fetchOptions: photoAccessHelper.FetchOptions = { 3185 fetchColumns: [], 3186 predicates: new dataSharePredicates.DataSharePredicates() 3187 } 3188 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = 3189 await phAccessHelper.getAssets(fetchOptions); 3190 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 3191 if (photoAsset != undefined) { 3192 let analysisData: string = await photoAsset.getAnalysisData( 3193 photoAccessHelper.AnalysisType.ANALYSIS_OCR); 3194 console.info('get ocr result: ' + JSON.stringify(analysisData)); 3195 } 3196 fetchResult.close(); 3197 } catch (err) { 3198 console.error(`getAnalysisDataDemofailed with error: ${err.code}, ${err.message}`); 3199 } 3200} 3201``` 3202 3203## Album 3204 3205实体相册 3206 3207### recoverAssets<sup>(deprecated)</sup> 3208 3209recoverAssets(assets: Array<PhotoAsset>, callback: AsyncCallback<void>): void 3210 3211从回收站中恢复图片或者视频,需要先在回收站中预置文件资源。该方法使用callback形式来返回结果。 3212 3213> **说明:** 3214> 3215> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.recoverAssets](#recoverassets11)替代。 3216 3217**系统接口**:此接口为系统接口。 3218 3219**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3220 3221**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3222 3223**参数:** 3224 3225| 参数名 | 类型 | 必填 | 说明 | 3226| -------- | ------------------------- | ---- | ---------- | 3227| assets | Array<[PhotoAsset](#photoasset)> | 是 | 回收站中待恢复图片或者视频数组。 | 3228| callback | AsyncCallback<void> | 是 | callback返回void。 | 3229 3230**错误码:** 3231 3232接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3233 3234| 错误码ID | 错误信息 | 3235| -------- | ---------------------------------------- | 3236| 202 | Called by non-system application. | 3237| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3238| 13900012 | Permission denied. | 3239| 13900020 | Invalid argument. | 3240| 14000011 | System inner fail. | 3241 3242**示例:** 3243 3244```ts 3245import { dataSharePredicates } from '@kit.ArkData'; 3246 3247async function example() { 3248 try { 3249 console.info('recoverAssetsDemoCallback'); 3250 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3251 let fetchOption: photoAccessHelper.FetchOptions = { 3252 fetchColumns: [], 3253 predicates: predicates 3254 }; 3255 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH); 3256 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 3257 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption); 3258 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 3259 album.recoverAssets([asset], (err) => { 3260 if (err === undefined) { 3261 console.info('album recoverAssets successfully'); 3262 } else { 3263 console.error(`album recoverAssets failed with error: ${err.code}, ${err.message}`); 3264 } 3265 }); 3266 } catch (err) { 3267 console.error(`recoverAssetsDemoCallback failed with error: ${err.code}, ${err.message}`); 3268 } 3269} 3270``` 3271 3272### recoverAssets<sup>(deprecated)</sup> 3273 3274recoverAssets(assets: Array<PhotoAsset>): Promise<void> 3275 3276从回收站中恢复图片或者视频,需要先在回收站中预置文件资源。该方法使用Promise来返回结果。 3277 3278> **说明:** 3279> 3280> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.recoverAssets](#recoverassets11)替代。 3281 3282**系统接口**:此接口为系统接口。 3283 3284**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3285 3286**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3287 3288**参数:** 3289 3290| 参数名 | 类型 | 必填 | 说明 | 3291| -------- | ------------------------- | ---- | ---------- | 3292| assets | Array<[PhotoAsset](#photoasset)> | 是 | 回收站中待恢复图片或者视频数组。 | 3293 3294**返回值:** 3295 3296| 类型 | 说明 | 3297| --------------------------------------- | ----------------- | 3298|Promise<void> | Promise对象,返回void。 | 3299 3300**错误码:** 3301 3302接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3303 3304| 错误码ID | 错误信息 | 3305| -------- | ---------------------------------------- | 3306| 202 | Called by non-system application. | 3307| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3308| 13900012 | Permission denied. | 3309| 13900020 | Invalid argument. | 3310| 14000011 | System inner fail. | 3311 3312**示例:** 3313 3314```ts 3315import { dataSharePredicates } from '@kit.ArkData'; 3316import { BusinessError } from '@kit.BasicServicesKit'; 3317 3318async function example() { 3319 try { 3320 console.info('recoverAssetsDemoPromise'); 3321 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3322 let fetchOption: photoAccessHelper.FetchOptions = { 3323 fetchColumns: [], 3324 predicates: predicates 3325 }; 3326 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH); 3327 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 3328 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption); 3329 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 3330 album.recoverAssets([asset]).then(() => { 3331 console.info('album recoverAssets successfully'); 3332 }).catch((err: BusinessError) => { 3333 console.error(`album recoverAssets failed with error: ${err.code}, ${err.message}`); 3334 }); 3335 } catch (err) { 3336 console.error(`recoverAssetsDemoPromise failed with error: ${err.code}, ${err.message}`); 3337 } 3338} 3339``` 3340 3341### deleteAssets<sup>(deprecated)</sup> 3342 3343deleteAssets(assets: Array<PhotoAsset>, callback: AsyncCallback<void>): void 3344 3345从回收站中彻底删除图片或者视频,需要先在回收站中预置文件资源。该方法使用callback形式来返回结果。 3346 3347> **说明:** 3348> 3349> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.deleteAssets](#deleteassets11)替代。 3350 3351**注意**:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。 3352 3353**系统接口**:此接口为系统接口。 3354 3355**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3356 3357**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3358 3359**参数:** 3360 3361| 参数名 | 类型 | 必填 | 说明 | 3362| -------- | ------------------------- | ---- | ---------- | 3363| assets | Array<[PhotoAsset](#photoasset)> | 是 | 回收站中待彻底删除图片或者视频数组。 | 3364| callback | AsyncCallback<void> | 是 | callback返回void。 | 3365 3366**错误码:** 3367 3368接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3369 3370| 错误码ID | 错误信息 | 3371| -------- | ---------------------------------------- | 3372| 202 | Called by non-system application. | 3373| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3374| 13900012 | Permission denied. | 3375| 13900020 | Invalid argument. | 3376| 14000011 | System inner fail. | 3377 3378**示例:** 3379 3380```ts 3381import { dataSharePredicates } from '@kit.ArkData'; 3382 3383async function example() { 3384 try { 3385 console.info('deleteAssetsDemoCallback'); 3386 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3387 let fetchOption: photoAccessHelper.FetchOptions = { 3388 fetchColumns: [], 3389 predicates: predicates 3390 }; 3391 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH); 3392 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 3393 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption); 3394 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 3395 album.deleteAssets([asset], (err) => { 3396 if (err === undefined) { 3397 console.info('album deleteAssets successfully'); 3398 } else { 3399 console.error(`album deleteAssets failed with error: ${err.code}, ${err.message}`); 3400 } 3401 }); 3402 } catch (err) { 3403 console.error(`deleteAssetsDemoCallback failed with error: ${err.code}, ${err.message}`); 3404 } 3405} 3406``` 3407 3408### deleteAssets<sup>(deprecated)</sup> 3409 3410deleteAssets(assets: Array<PhotoAsset>): Promise<void> 3411 3412从回收站中彻底删除图片或者视频,需要先在回收站中预置文件资源。该方法使用Promise来返回结果。 3413 3414> **说明:** 3415> 3416> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.deleteAssets](#deleteassets11)替代。 3417 3418**注意**:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。 3419 3420**系统接口**:此接口为系统接口。 3421 3422**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3423 3424**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3425 3426**参数:** 3427 3428| 参数名 | 类型 | 必填 | 说明 | 3429| -------- | ------------------------- | ---- | ---------- | 3430| assets | Array<[PhotoAsset](#photoasset)> | 是 | 回收站中待彻底删除图片或者视频数组。 | 3431 3432**返回值:** 3433 3434| 类型 | 说明 | 3435| --------------------------------------- | ----------------- | 3436|Promise<void> | Promise对象,返回void。 | 3437 3438**错误码:** 3439 3440接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3441 3442| 错误码ID | 错误信息 | 3443| -------- | ---------------------------------------- | 3444| 202 | Called by non-system application. | 3445| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3446| 13900012 | Permission denied. | 3447| 13900020 | Invalid argument. | 3448| 14000011 | System inner fail. | 3449 3450**示例:** 3451 3452```ts 3453import { dataSharePredicates } from '@kit.ArkData'; 3454import { BusinessError } from '@kit.BasicServicesKit'; 3455 3456async function example() { 3457 try { 3458 console.info('deleteAssetsDemoPromise'); 3459 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3460 let fetchOption: photoAccessHelper.FetchOptions = { 3461 fetchColumns: [], 3462 predicates: predicates 3463 }; 3464 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH); 3465 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 3466 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption); 3467 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 3468 album.deleteAssets([asset]).then(() => { 3469 console.info('album deleteAssets successfully'); 3470 }).catch((err: BusinessError) => { 3471 console.error(`album deleteAssets failed with error: ${err.code}, ${err.message}`); 3472 }); 3473 } catch (err) { 3474 console.error(`deleteAssetsDemoPromise failed with error: ${err.code}, ${err.message}`); 3475 } 3476} 3477``` 3478 3479### setCoverUri<sup>(deprecated)</sup> 3480 3481setCoverUri(uri: string, callback: AsyncCallback<void>): void 3482 3483设置相册封面,该方法使用callback形式来返回结果。 3484 3485> **说明:** 3486> 3487> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.setCoverUri](#setcoveruri11)替代。 3488 3489**注意**:此接口只可修改用户相册封面,不允许修改系统相册封面。 3490 3491**系统接口**:此接口为系统接口。 3492 3493**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3494 3495**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3496 3497**参数:** 3498 3499| 参数名 | 类型 | 必填 | 说明 | 3500| -------- | ------------------------- | ---- | ---------- | 3501| uri | string | 是 | 待设置为相册封面文件的uri。 | 3502| callback | AsyncCallback<void> | 是 | callback返回void。 | 3503 3504**错误码:** 3505 3506接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3507 3508| 错误码ID | 错误信息 | 3509| -------- | ---------------------------------------- | 3510| 202 | Called by non-system application. | 3511| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3512| 13900012 | Permission denied. | 3513| 13900020 | Invalid argument. | 3514| 14000011 | System inner fail. | 3515 3516**示例:** 3517 3518```ts 3519import { dataSharePredicates } from '@kit.ArkData'; 3520 3521async function example() { 3522 try { 3523 console.info('setCoverUriDemoCallback'); 3524 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3525 let fetchOption: photoAccessHelper.FetchOptions = { 3526 fetchColumns: [], 3527 predicates: predicates 3528 }; 3529 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 3530 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 3531 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption); 3532 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 3533 album.setCoverUri(asset.uri, (err) => { 3534 if (err === undefined) { 3535 console.info('album setCoverUri successfully'); 3536 } else { 3537 console.error(`album setCoverUri failed with error: ${err.code}, ${err.message}`); 3538 } 3539 }); 3540 } catch (err) { 3541 console.error(`setCoverUriDemoCallback failed with error: ${err.code}, ${err.message}`); 3542 } 3543} 3544``` 3545 3546### setCoverUri<sup>(deprecated)</sup> 3547 3548setCoverUri(uri: string): Promise<void> 3549 3550设置相册封面,该方法使用Promise来返回结果。 3551 3552> **说明:** 3553> 3554> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.setCoverUri](#setcoveruri11)替代。 3555 3556**注意**:此接口只可修改用户相册封面,不允许修改系统相册封面。 3557 3558**系统接口**:此接口为系统接口。 3559 3560**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3561 3562**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3563 3564**参数:** 3565 3566| 参数名 | 类型 | 必填 | 说明 | 3567| -------- | ------------------------- | ---- | ---------- | 3568| uri | string | 是 | 待设置为相册封面文件的uri。 | 3569 3570**返回值:** 3571 3572| 类型 | 说明 | 3573| --------------------------------------- | ----------------- | 3574|Promise<void> | Promise对象,返回void。 | 3575 3576**错误码:** 3577 3578接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3579 3580| 错误码ID | 错误信息 | 3581| -------- | ---------------------------------------- | 3582| 202 | Called by non-system application. | 3583| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3584| 13900012 | Permission denied. | 3585| 13900020 | Invalid argument. | 3586| 14000011 | System inner fail. | 3587**示例:** 3588 3589```ts 3590import { dataSharePredicates } from '@kit.ArkData'; 3591import { BusinessError } from '@kit.BasicServicesKit'; 3592 3593async function example() { 3594 try { 3595 console.info('setCoverUriDemoPromise'); 3596 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3597 let fetchOption: photoAccessHelper.FetchOptions = { 3598 fetchColumns: [], 3599 predicates: predicates 3600 }; 3601 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 3602 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 3603 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption); 3604 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 3605 album.setCoverUri(asset.uri).then(() => { 3606 console.info('album setCoverUri successfully'); 3607 }).catch((err: BusinessError) => { 3608 console.error(`album setCoverUri failed with error: ${err.code}, ${err.message}`); 3609 }); 3610 } catch (err) { 3611 console.error(`setCoverUriDemoPromise failed with error: ${err.code}, ${err.message}`); 3612 } 3613} 3614``` 3615 3616## MediaAssetEditData<sup>11+</sup> 3617 3618资产编辑数据。 3619 3620**系统接口**:此接口为系统接口。 3621 3622**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3623 3624### 属性 3625 3626| 名称 | 类型 | 可读 | 可写 | 说明 | 3627| ------------ | ------ | ---- | ---- | ------- | 3628| compatibleFormat | string | 是 | 是 | 编辑数据的格式。**系统接口**:此接口为系统接口。 | 3629| formatVersion | string | 是 | 是 | 编辑数据格式的版本。**系统接口**:此接口为系统接口。 | 3630| data | string | 是 | 是 | 编辑数据的内容。**系统接口**:此接口为系统接口。 | 3631 3632### constructor<sup>11+</sup> 3633 3634constructor(compatibleFormat: string, formatVersion: string) 3635 3636构造函数。 3637 3638**系统接口**:此接口为系统接口。 3639 3640**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3641 3642**参数:** 3643 3644| 参数名 | 类型 | 必填 | 说明 | 3645| -------- | ------------------------- | ---- | ---------- | 3646| compatibleFormat | string | 是 | 编辑数据的格式。 | 3647| formatVersion | string | 是 | 编辑数据格式的版本。 | 3648 3649**错误码:** 3650 3651接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3652 3653| 错误码ID | 错误信息 | 3654| -------- | ---------------------------------------- | 3655| 202 | Called by non-system application. | 3656| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3657| 14000011 | System inner fail. | 3658 3659**示例:** 3660 3661```ts 3662let assetEditData: photoAccessHelper.MediaAssetEditData = new photoAccessHelper.MediaAssetEditData('system', '1.0'); 3663``` 3664 3665## MediaAssetChangeRequest<sup>11+</sup> 3666 3667资产变更请求。 3668 3669**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3670 3671### createAssetRequest<sup>11+</sup> 3672 3673static createAssetRequest(context: Context, displayName: string, options?: PhotoCreateOptions): MediaAssetChangeRequest 3674 3675指定待创建的图片或者视频的文件名,创建资产变更请求。 3676 3677待创建的文件名参数规格为: 3678- 应包含有效文件主名和图片或视频扩展名。 3679- 文件名字符串长度为1~255。 3680- 文件主名中不允许出现非法字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ] 3681 3682**系统接口**:此接口为系统接口。 3683 3684**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3685 3686**参数:** 3687 3688| 参数名 | 类型 | 必填 | 说明 | 3689| ------- | ------- | ---- | -------------------------- | 3690| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。 | 3691| displayName | string | 是 | 待创建的图片或者视频文件名。 | 3692| options | [PhotoCreateOptions](#photocreateoptions) | 否 | 图片或视频的创建选项。 | 3693 3694**返回值:** 3695 3696| 类型 | 说明 | 3697| --------------------------------------- | ----------------- | 3698| [MediaAssetChangeRequest](#mediaassetchangerequest11) | 返回创建资产的变更请求。 | 3699 3700**错误码:** 3701 3702接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3703 3704| 错误码ID | 错误信息 | 3705| -------- | ---------------------------------------- | 3706| 202 | Called by non-system application. | 3707| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3708| 14000001 | Invalid display name. | 3709| 14000011 | System inner fail. | 3710 3711**示例:** 3712 3713```ts 3714async function example() { 3715 console.info('createAssetRequestDemo'); 3716 try { 3717 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 3718 let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, testFileName); 3719 // 需要确保fileUri对应的资源存在 3720 let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg'; 3721 assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, fileUri); 3722 await phAccessHelper.applyChanges(assetChangeRequest); 3723 console.info('apply createAssetRequest successfully'); 3724 } catch (err) { 3725 console.error(`createAssetRequestDemo failed with error: ${err.code}, ${err.message}`); 3726 } 3727} 3728``` 3729 3730### setFavorite<sup>11+</sup> 3731 3732setFavorite(favoriteState: boolean): void 3733 3734将文件设置为收藏文件。 3735 3736**系统接口**:此接口为系统接口。 3737 3738**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3739 3740**参数:** 3741 3742| 参数名 | 类型 | 必填 | 说明 | 3743| ---------- | ------- | ---- | ---------------------------------- | 3744| favoriteState | boolean | 是 | 是否设置为收藏文件, true:设置为收藏文件;false:取消收藏。 | 3745 3746**错误码:** 3747 3748接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3749 3750| 错误码ID | 错误信息 | 3751| -------- | ---------------------------------------- | 3752| 202 | Called by non-system application. | 3753| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3754| 14000011 | System inner fail. | 3755 3756**示例:** 3757 3758```ts 3759import { dataSharePredicates } from '@kit.ArkData'; 3760import { BusinessError } from '@kit.BasicServicesKit'; 3761 3762async function example() { 3763 console.info('setFavoriteDemo'); 3764 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3765 let fetchOption: photoAccessHelper.FetchOptions = { 3766 fetchColumns: [], 3767 predicates: predicates 3768 }; 3769 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 3770 let asset = await fetchResult.getFirstObject(); 3771 let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset); 3772 assetChangeRequest.setFavorite(true); 3773 phAccessHelper.applyChanges(assetChangeRequest).then(() => { 3774 console.info('apply setFavorite successfully'); 3775 }).catch((err: BusinessError) => { 3776 console.error(`apply setFavorite failed with error: ${err.code}, ${err.message}`); 3777 }); 3778} 3779``` 3780 3781### setHidden<sup>11+</sup> 3782 3783setHidden(hiddenState: boolean): void 3784 3785将文件设置为隐藏文件。 3786 3787**系统接口**:此接口为系统接口。 3788 3789**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3790 3791**参数:** 3792 3793| 参数名 | 类型 | 必填 | 说明 | 3794| ---------- | ------- | ---- | ---------------------------------- | 3795| hiddenState | boolean | 是 | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 | 3796 3797**错误码:** 3798 3799接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3800 3801| 错误码ID | 错误信息 | 3802| -------- | ---------------------------------------- | 3803| 202 | Called by non-system application. | 3804| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3805| 14000011 | System inner fail. | 3806 3807**示例:** 3808 3809```ts 3810import { dataSharePredicates } from '@kit.ArkData'; 3811import { BusinessError } from '@kit.BasicServicesKit'; 3812 3813async function example() { 3814 console.info('setHiddenDemo'); 3815 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3816 let fetchOption: photoAccessHelper.FetchOptions = { 3817 fetchColumns: [], 3818 predicates: predicates 3819 }; 3820 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 3821 let asset = await fetchResult.getFirstObject(); 3822 let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset); 3823 assetChangeRequest.setHidden(true); 3824 phAccessHelper.applyChanges(assetChangeRequest).then(() => { 3825 console.info('apply setHidden successfully'); 3826 }).catch((err: BusinessError) => { 3827 console.error(`apply setHidden failed with error: ${err.code}, ${err.message}`); 3828 }); 3829} 3830``` 3831 3832### setUserComment<sup>11+</sup> 3833 3834setUserComment(userComment: string): void 3835 3836修改媒体资产的备注信息。 3837 3838**系统接口**:此接口为系统接口。 3839 3840**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3841 3842**参数:** 3843 3844| 参数名 | 类型 | 必填 | 说明 | 3845| ---------- | ------- | ---- | ---------------------------------- | 3846| userComment | string | 是 | 待修改的资产备注信息,备注信息最长为420字符。 | 3847 3848**错误码:** 3849 3850接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3851 3852| 错误码ID | 错误信息 | 3853| -------- | ---------------------------------------- | 3854| 202 | Called by non-system application. | 3855| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3856| 14000011 | System inner fail. | 3857 3858**示例:** 3859 3860```ts 3861import { dataSharePredicates } from '@kit.ArkData'; 3862import { BusinessError } from '@kit.BasicServicesKit'; 3863 3864async function example() { 3865 console.info('setUserCommentDemo'); 3866 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3867 let fetchOption: photoAccessHelper.FetchOptions = { 3868 fetchColumns: [], 3869 predicates: predicates 3870 }; 3871 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 3872 let asset = await fetchResult.getFirstObject(); 3873 let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset); 3874 let userComment: string = 'test_set_user_comment'; 3875 assetChangeRequest.setUserComment(userComment); 3876 phAccessHelper.applyChanges(assetChangeRequest).then(() => { 3877 console.info('apply setUserComment successfully'); 3878 }).catch((err: BusinessError) => { 3879 console.error(`apply setUserComment failed with error: ${err.code}, ${err.message}`); 3880 }); 3881} 3882``` 3883 3884### setEditData<sup>11+</sup> 3885 3886setEditData(editData: MediaAssetEditData): void 3887 3888保存资产的编辑数据。 3889 3890**系统接口**:此接口为系统接口。 3891 3892**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3893 3894**参数:** 3895 3896| 参数名 | 类型 | 必填 | 说明 | 3897| ---------- | ------- | ---- | ---------------------------------- | 3898| editData | [MediaAssetEditData](#mediaasseteditdata11) | 是 | 待保存的资产编辑数据。 | 3899 3900**错误码:** 3901 3902接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3903 3904| 错误码ID | 错误信息 | 3905| -------- | ---------------------------------------- | 3906| 202 | Called by non-system application. | 3907| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3908| 14000011 | System inner fail. | 3909 3910**示例:** 3911 3912```ts 3913import { dataSharePredicates } from '@kit.ArkData'; 3914import { BusinessError } from '@kit.BasicServicesKit'; 3915 3916async function example() { 3917 console.info('setEditDataDemo'); 3918 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3919 let fetchOption: photoAccessHelper.FetchOptions = { 3920 fetchColumns: [], 3921 predicates: predicates 3922 }; 3923 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 3924 let asset = await fetchResult.getFirstObject(); 3925 let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset); 3926 3927 let assetEditData: photoAccessHelper.MediaAssetEditData = new photoAccessHelper.MediaAssetEditData('system', '1.0'); 3928 let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg'; 3929 assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, fileUri); 3930 assetEditData.data = '123456'; 3931 assetChangeRequest.setEditData(assetEditData); 3932 phAccessHelper.applyChanges(assetChangeRequest).then(() => { 3933 console.info('apply setEditData successfully'); 3934 }).catch((err: BusinessError) => { 3935 console.error(`apply setEditData failed with error: ${err.code}, ${err.message}`); 3936 }); 3937} 3938``` 3939 3940### addResource<sup>11+</sup> 3941 3942addResource(type: ResourceType, proxy: PhotoProxy): void 3943 3944通过PhotoProxy数据添加资源。 3945 3946**注意**:对于同一个资产变更请求,不支持在成功添加资源后,重复调用该接口。 3947 3948**系统接口**:此接口为系统接口,仅提供给相机应用使用。 3949 3950**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3951 3952**参数:** 3953 3954| 参数名 | 类型 | 必填 | 说明 | 3955| ------- |---------------------------------| ---- |----------------------| 3956| type | [ResourceType](#resourcetype11) | 是 | 待添加资源的类型。 | 3957| proxy | [PhotoProxy](#photoproxy11) | 是 | 待添加资源的PhotoProxy 数据。 | 3958 3959**错误码:** 3960 3961接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3962 3963| 错误码ID | 错误信息 | 3964|----------|-----------------------------------| 3965| 202 | Called by non-system application. | 3966| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 3967| 14000011 | System inner fail. | 3968| 14000016 | Operation Not Support. | 3969 3970**示例:** 3971 3972```ts 3973class PhotoProxyImpl implements photoAccessHelper.PhotoProxy { 3974 // 应用实现PhotoProxy 3975} 3976 3977async function example() { 3978 console.info('addResourceByPhotoProxyDemo'); 3979 try { 3980 let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE; 3981 let extension: string = 'jpg'; 3982 let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, photoType, extension); 3983 let photoProxy: PhotoProxyImpl = new PhotoProxyImpl(); 3984 assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, photoProxy); 3985 await phAccessHelper.applyChanges(assetChangeRequest); 3986 console.info('addResourceByPhotoProxy successfully'); 3987 } catch (err) { 3988 console.error(`addResourceByPhotoProxyDemo failed with error: ${err.code}, ${err.message}`); 3989 } 3990} 3991``` 3992 3993### setLocation<sup>11+</sup> 3994 3995setLocation(longitude: number, latitude: number): void 3996 3997设置文件的经纬度信息。 3998 3999**系统接口**:此接口为系统接口 4000 4001**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4002 4003**参数:** 4004 4005| 参数名 | 类型 | 必填 | 说明 | 4006| ------- |-------------| ---- |-------| 4007| longitude | number | 是 | 经度。 | 4008| latitude | number | 是 | 纬度。 | 4009 4010**错误码:** 4011 4012接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4013 4014| 错误码ID | 错误信息 | 4015| -------- | ---------------------------------------- | 4016| 202 | Called by non-system application. | 4017| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4018| 14000011 | System inner fail. | 4019 4020**示例:** 4021 4022```ts 4023import { dataSharePredicates } from '@kit.ArkData'; 4024import { BusinessError } from '@kit.BasicServicesKit'; 4025 4026async function example() { 4027 console.info('setLocationDemo'); 4028 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4029 let fetchOption: photoAccessHelper.FetchOptions = { 4030 fetchColumns: [], 4031 predicates: predicates 4032 }; 4033 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 4034 let asset = await fetchResult.getFirstObject(); 4035 let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset); 4036 assetChangeRequest.setLocation(120.52, 30.40); 4037 phAccessHelper.applyChanges(assetChangeRequest).then(() => { 4038 console.info('apply setLocation successfully'); 4039 }).catch((err: BusinessError) => { 4040 console.error(`apply setLocation failed with error: ${err.code}, ${err.message}`); 4041 }); 4042} 4043``` 4044 4045### setCameraShotKey<sup>12+</sup> 4046 4047setCameraShotKey(cameraShotKey: string): void 4048 4049设置锁屏相机拍照或录像的标记字段。 4050 4051**系统接口**:此接口为系统接口。 4052 4053**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4054 4055**参数:** 4056 4057| 参数名 | 类型 | 必填 | 说明 | 4058| ---------- | ------- | ---- | ---------------------------------- | 4059| cameraShotKey | string | 是 | 锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。 | 4060 4061**错误码:** 4062 4063接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4064 4065| 错误码ID | 错误信息 | 4066| -------- | ---------------------------------------- | 4067| 202 | Called by non-system application. | 4068| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4069| 14000011 | System inner fail. | 4070 4071**示例:** 4072 4073```ts 4074async function example(asset: photoAccessHelper.PhotoAsset) { 4075 console.info('setCameraShotKeyDemo'); 4076 try { 4077 let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset); 4078 let cameraShotKey: string = 'test_MediaAssetChangeRequest_setCameraShotKey'; 4079 assetChangeRequest.setCameraShotKey(cameraShotKey); 4080 await phAccessHelper.applyChanges(assetChangeRequest); 4081 console.info('apply setCameraShotKey successfully'); 4082 } catch (err) { 4083 console.error(`apply setCameraShotKey failed with error: ${err.code}, ${err.message}`); 4084 } 4085} 4086``` 4087 4088### setEffectMode<sup>12+</sup> 4089 4090setEffectMode(mode: MovingPhotoEffectMode): void 4091 4092设置动态照片的效果模式。 4093 4094**系统接口**:此接口为系统接口。 4095 4096**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4097 4098**参数:** 4099 4100| 参数名 | 类型 | 必填 | 说明 | 4101| ---------- | ------- | ---- | ---------------------------------- | 4102| mode | [MovingPhotoEffectMode](#movingphotoeffectmode12) | 是 | 动态照片效果模式。 | 4103 4104**错误码:** 4105 4106接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4107 4108| 错误码ID | 错误信息 | 4109| -------- | ---------------------------------------- | 4110| 202 | Called by non-system application. | 4111| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4112| 14000011 | System inner fail. | 4113| 14000016 | Operation Not Support. | 4114 4115**示例:** 4116 4117```ts 4118async function example(asset: photoAccessHelper.PhotoAsset) { 4119 console.info('setEffectModeDemo'); 4120 try { 4121 let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset); 4122 assetChangeRequest.setEffectMode(photoAccessHelper.MovingPhotoEffectMode.LONG_EXPOSURE); 4123 // 需要确保fileUri对应的资源存在 4124 let imageFileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/long_exposure.jpg'; 4125 let videoFileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/long_exposure.mp4'; 4126 assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, imageFileUri); 4127 assetChangeRequest.addResource(photoAccessHelper.ResourceType.VIDEO_RESOURCE, videoFileUri); 4128 await phAccessHelper.applyChanges(assetChangeRequest); 4129 console.info('apply setEffectMode successfully'); 4130 } catch (err) { 4131 console.error(`apply setEffectMode failed with error: ${err.code}, ${err.message}`); 4132 } 4133} 4134``` 4135 4136## MediaAssetsChangeRequest<sup>11+</sup> 4137 4138批量资产变更请求。 4139 4140**系统接口**:此接口为系统接口。 4141 4142**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4143 4144### constructor<sup>11+</sup> 4145 4146constructor(assets: Array<PhotoAsset>) 4147 4148构造函数。 4149 4150**系统接口**:此接口为系统接口。 4151 4152**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4153 4154**参数:** 4155 4156| 参数名 | 类型 | 必填 | 说明 | 4157| -------- | ------------------------- | ---- | ---------- | 4158| assets | Array<[PhotoAsset](#photoasset)> | 是 | 需要变更的资产数组。 | 4159 4160**错误码:** 4161 4162接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4163 4164| 错误码ID | 错误信息 | 4165| -------- | ---------------------------------------- | 4166| 202 | Called by non-system application. | 4167| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4168| 14000011 | System inner fail. | 4169 4170**示例:** 4171 4172```ts 4173import { dataSharePredicates } from '@kit.ArkData'; 4174 4175async function example() { 4176 console.info('MediaAssetsChangeRequest constructorDemo'); 4177 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4178 let fetchOption: photoAccessHelper.FetchOptions = { 4179 fetchColumns: [], 4180 predicates: predicates 4181 }; 4182 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 4183 let photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects(); 4184 let assetsChangeRequest: photoAccessHelper.MediaAssetsChangeRequest = new photoAccessHelper.MediaAssetsChangeRequest(photoAssetList); 4185} 4186``` 4187 4188### setFavorite<sup>11+</sup> 4189 4190setFavorite(favoriteState: boolean): void 4191 4192将文件设置为收藏文件。 4193 4194**系统接口**:此接口为系统接口。 4195 4196**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4197 4198**参数:** 4199 4200| 参数名 | 类型 | 必填 | 说明 | 4201| ---------- | ------- | ---- | ---------------------------------- | 4202| favoriteState | boolean | 是 | 是否设置为收藏文件, true:设置为收藏文件;false:取消收藏。 | 4203 4204**错误码:** 4205 4206接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4207 4208| 错误码ID | 错误信息 | 4209| -------- | ---------------------------------------- | 4210| 202 | Called by non-system application. | 4211| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4212| 14000011 | System inner fail. | 4213 4214**示例:** 4215 4216```ts 4217import { dataSharePredicates } from '@kit.ArkData'; 4218import { BusinessError } from '@kit.BasicServicesKit'; 4219 4220async function example() { 4221 console.info('setFavoriteDemo'); 4222 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4223 let fetchOption: photoAccessHelper.FetchOptions = { 4224 fetchColumns: [], 4225 predicates: predicates 4226 }; 4227 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 4228 let photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects(); 4229 let assetsChangeRequest: photoAccessHelper.MediaAssetsChangeRequest = new photoAccessHelper.MediaAssetsChangeRequest(photoAssetList); 4230 assetsChangeRequest.setFavorite(true); 4231 phAccessHelper.applyChanges(assetsChangeRequest).then(() => { 4232 console.info('apply setFavorite successfully'); 4233 }).catch((err: BusinessError) => { 4234 console.error(`apply setFavorite failed with error: ${err.code}, ${err.message}`); 4235 }); 4236} 4237``` 4238 4239### setHidden<sup>11+</sup> 4240 4241setHidden(hiddenState: boolean): void 4242 4243将文件设置为隐藏文件。 4244 4245**系统接口**:此接口为系统接口。 4246 4247**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4248 4249**参数:** 4250 4251| 参数名 | 类型 | 必填 | 说明 | 4252| ---------- | ------- | ---- | ---------------------------------- | 4253| hiddenState | boolean | 是 | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 | 4254 4255**错误码:** 4256 4257接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4258 4259| 错误码ID | 错误信息 | 4260| -------- | ---------------------------------------- | 4261| 202 | Called by non-system application. | 4262| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4263| 14000011 | System inner fail. | 4264 4265**示例:** 4266 4267```ts 4268import { dataSharePredicates } from '@kit.ArkData'; 4269import { BusinessError } from '@kit.BasicServicesKit'; 4270 4271async function example() { 4272 console.info('setHiddenDemo'); 4273 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4274 let fetchOption: photoAccessHelper.FetchOptions = { 4275 fetchColumns: [], 4276 predicates: predicates 4277 }; 4278 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 4279 let photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects(); 4280 let assetsChangeRequest: photoAccessHelper.MediaAssetsChangeRequest = new photoAccessHelper.MediaAssetsChangeRequest(photoAssetList); 4281 assetsChangeRequest.setHidden(true); 4282 phAccessHelper.applyChanges(assetsChangeRequest).then(() => { 4283 console.info('apply setHidden successfully'); 4284 }).catch((err: BusinessError) => { 4285 console.error(`apply setHidden failed with error: ${err.code}, ${err.message}`); 4286 }); 4287} 4288``` 4289 4290### setUserComment<sup>11+</sup> 4291 4292setUserComment(userComment: string): void 4293 4294修改媒体资产的备注信息。 4295 4296**系统接口**:此接口为系统接口。 4297 4298**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4299 4300**参数:** 4301 4302| 参数名 | 类型 | 必填 | 说明 | 4303| ---------- | ------- | ---- | ---------------------------------- | 4304| userComment | string | 是 | 待修改的资产备注信息,备注信息最长为420字符。 | 4305 4306**错误码:** 4307 4308接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4309 4310| 错误码ID | 错误信息 | 4311| -------- | ---------------------------------------- | 4312| 202 | Called by non-system application. | 4313| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4314| 14000011 | System inner fail. | 4315 4316**示例:** 4317 4318```ts 4319import { dataSharePredicates } from '@kit.ArkData'; 4320import { BusinessError } from '@kit.BasicServicesKit'; 4321 4322async function example() { 4323 console.info('setUserCommentDemo'); 4324 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4325 let fetchOption: photoAccessHelper.FetchOptions = { 4326 fetchColumns: [], 4327 predicates: predicates 4328 }; 4329 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 4330 let photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects(); 4331 let assetsChangeRequest: photoAccessHelper.MediaAssetsChangeRequest = new photoAccessHelper.MediaAssetsChangeRequest(photoAssetList); 4332 assetsChangeRequest.setUserComment('test_set_user_comment'); 4333 phAccessHelper.applyChanges(assetsChangeRequest).then(() => { 4334 console.info('apply setUserComment successfully'); 4335 }).catch((err: BusinessError) => { 4336 console.error(`apply setUserComment failed with error: ${err.code}, ${err.message}`); 4337 }); 4338} 4339``` 4340 4341## MediaAlbumChangeRequest<sup>11+</sup> 4342 4343相册变更请求。 4344 4345**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4346 4347### createAlbumRequest<sup>11+</sup> 4348 4349static createAlbumRequest(context: Context, name: string): MediaAlbumChangeRequest 4350 4351创建相册变更请求。 4352 4353相册名的参数规格为: 4354- 相册名字符串长度为1~255。 4355- 不允许出现非法字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ] 4356- 英文字符大小写不敏感。 4357- 相册名不允许重名。 4358 4359**系统接口**:此接口为系统接口。 4360 4361**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4362 4363**参数:** 4364 4365| 参数名 | 类型 | 必填 | 说明 | 4366| ------- | ------- | ---- | -------------------------- | 4367| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。 | 4368| name | string | 是 | 待创建相册的名称。| 4369 4370**返回值:** 4371 4372| 类型 | 说明 | 4373| --------------------------------------- | ----------------- | 4374| [MediaAlbumChangeRequest](#mediaalbumchangerequest11) | 返回创建相册的变更请求。 | 4375 4376**错误码:** 4377 4378接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4379 4380| 错误码ID | 错误信息 | 4381| -------- | ---------------------------------------- | 4382| 202 | Called by non-system application. | 4383| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4384| 14000011 | System inner fail. | 4385 4386**示例:** 4387 4388```ts 4389async function example() { 4390 console.info('createAlbumRequestDemo'); 4391 try { 4392 let albumName: string = 'newAlbumName' + new Date().getTime(); 4393 let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = photoAccessHelper.MediaAlbumChangeRequest.createAlbumRequest(context, albumName); 4394 await phAccessHelper.applyChanges(albumChangeRequest); 4395 console.info('apply createAlbumRequest successfully'); 4396 } catch (err) { 4397 console.error(`createAlbumRequestDemo failed with error: ${err.code}, ${err.message}`); 4398 } 4399} 4400``` 4401 4402### deleteAlbums<sup>11+</sup> 4403 4404static deleteAlbums(context: Context, albums: Array<Album>): Promise<void> 4405 4406删除相册,使用Promise方式返回结果。 4407 4408删除相册前需先确保相册存在,只能删除用户相册。 4409 4410**系统接口**:此接口为系统接口。 4411 4412**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 4413 4414**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4415 4416**参数:** 4417 4418| 参数名 | 类型 | 必填 | 说明 | 4419| ------- | ------- | ---- | -------------------------- | 4420| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。 | 4421| albums | Array<[Album](#album)> | 是 | 待删除的相册数组。 | 4422 4423**返回值:** 4424 4425| 类型 | 说明 | 4426| --------------------------------------- | ----------------- | 4427| Promise<void>| Promise对象,返回void。 | 4428 4429**错误码:** 4430 4431接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4432 4433| 错误码ID | 错误信息 | 4434| -------- | ---------------------------------------- | 4435| 201 | Permission denied. | 4436| 202 | Called by non-system application. | 4437| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4438| 14000011 | System inner fail. | 4439 4440**示例:** 4441 4442```ts 4443import { dataSharePredicates } from '@kit.ArkData'; 4444 4445async function example() { 4446 console.info('deleteAlbumsDemo'); 4447 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4448 let fetchOptions: photoAccessHelper.FetchOptions = { 4449 fetchColumns: [], 4450 predicates: predicates 4451 }; 4452 try { 4453 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions); 4454 let album: photoAccessHelper.Album = await fetchResult.getFirstObject(); 4455 await photoAccessHelper.MediaAlbumChangeRequest.deleteAlbums(context, [album]); 4456 console.info('deleteAlbums successfully'); 4457 } catch (err) { 4458 console.error(`deleteAlbumsDemo failed with error: ${err.code}, ${err.message}`); 4459 } 4460} 4461``` 4462 4463### setCoverUri<sup>11+</sup> 4464 4465setCoverUri(coverUri: string): void 4466 4467设置相册封面。 4468 4469**系统接口**:此接口为系统接口。 4470 4471**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4472 4473**参数:** 4474 4475| 参数名 | 类型 | 必填 | 说明 | 4476| ---------- | ------- | ---- | ---------------------------------- | 4477| coverUri | string | 是 | 待设置为相册封面文件的uri。 | 4478 4479**错误码:** 4480 4481接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4482 4483| 错误码ID | 错误信息 | 4484| -------- | ---------------------------------------- | 4485| 202 | Called by non-system application. | 4486| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4487| 14000011 | System inner fail. | 4488 4489**示例:** 4490 4491```ts 4492import { dataSharePredicates } from '@kit.ArkData'; 4493 4494async function example() { 4495 console.info('setCoverUriDemo'); 4496 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4497 let fetchOptions: photoAccessHelper.FetchOptions = { 4498 fetchColumns: [], 4499 predicates: predicates 4500 }; 4501 try { 4502 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 4503 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 4504 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions); 4505 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 4506 4507 let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 4508 albumChangeRequest.setCoverUri(asset.uri); 4509 await phAccessHelper.applyChanges(albumChangeRequest); 4510 console.info('setCoverUri successfully'); 4511 } catch (err) { 4512 console.error(`setCoverUriDemo failed with error: ${err.code}, ${err.message}`); 4513 } 4514} 4515``` 4516 4517### moveAssets<sup>11+</sup> 4518 4519moveAssets(assets: Array<PhotoAsset>, targetAlbum: Album): void 4520 4521从相册中移动资产到另一个目标相册。 4522 4523**系统接口**:此接口为系统接口。 4524 4525**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4526 4527**参数:** 4528 4529| 参数名 | 类型 | 必填 | 说明 | 4530| ---------- | ------- | ---- | ---------------------------------- | 4531| assets | Array<[PhotoAsset](#photoasset)> | 是 | 待从相册中移出的资产数组。 | 4532| targetAlbum | Album | 是 | 待移入资产的目标相册。 | 4533 4534**错误码:** 4535 4536接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4537 4538| 错误码ID | 错误信息 | 4539| -------- | ---------------------------------------- | 4540| 202 | Called by non-system application. | 4541| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4542| 14000011 | System inner fail. | 4543| 14000016 | Operation Not Support. | 4544 4545**示例:** 4546 4547```ts 4548import { dataSharePredicates } from '@kit.ArkData'; 4549 4550async function example() { 4551 console.info('moveAssetsDemo'); 4552 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4553 let fetchOptions: photoAccessHelper.FetchOptions = { 4554 fetchColumns: [], 4555 predicates: predicates 4556 }; 4557 try { 4558 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 4559 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 4560 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions); 4561 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 4562 4563 if (albumFetchResult.isAfterLast()) { 4564 console.error('lack of album to be moved into'); 4565 return; 4566 } 4567 let nextAlbum: photoAccessHelper.Album = await albumFetchResult.getNextObject(); 4568 let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 4569 albumChangeRequest.moveAssets([asset], nextAlbum); 4570 await phAccessHelper.applyChanges(albumChangeRequest); 4571 console.info('moveAssets successfully'); 4572 } catch (err) { 4573 console.error(`moveAssetsDemo failed with error: ${err.code}, ${err.message}`); 4574 } 4575} 4576``` 4577 4578### recoverAssets<sup>11+</sup> 4579 4580recoverAssets(assets: Array<PhotoAsset>): void 4581 4582从回收站中恢复资产。 4583 4584**系统接口**:此接口为系统接口。 4585 4586**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4587 4588**参数:** 4589 4590| 参数名 | 类型 | 必填 | 说明 | 4591| ---------- | ------- | ---- | ---------------------------------- | 4592| assets | Array<[PhotoAsset](#photoasset)> | 是 | 待从回收站中恢复的资产数组。 | 4593 4594**错误码:** 4595 4596接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4597 4598| 错误码ID | 错误信息 | 4599| -------- | ---------------------------------------- | 4600| 202 | Called by non-system application. | 4601| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4602| 14000011 | System inner fail. | 4603| 14000016 | Operation Not Support. | 4604 4605**示例:** 4606 4607```ts 4608import { dataSharePredicates } from '@kit.ArkData'; 4609 4610async function example() { 4611 console.info('recoverAssetsDemo'); 4612 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4613 let fetchOptions: photoAccessHelper.FetchOptions = { 4614 fetchColumns: [], 4615 predicates: predicates 4616 }; 4617 try { 4618 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH); 4619 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 4620 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions); 4621 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 4622 4623 let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 4624 albumChangeRequest.recoverAssets([asset]); 4625 await phAccessHelper.applyChanges(albumChangeRequest); 4626 console.info('recoverAssets successfully'); 4627 } catch (err) { 4628 console.error(`recoverAssetsDemo failed with error: ${err.code}, ${err.message}`); 4629 } 4630} 4631``` 4632 4633### deleteAssets<sup>11+</sup> 4634 4635deleteAssets(assets: Array<PhotoAsset>): void 4636 4637从回收站中彻底删除资产。 4638 4639**注意**:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。 4640 4641**系统接口**:此接口为系统接口。 4642 4643**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4644 4645**参数:** 4646 4647| 参数名 | 类型 | 必填 | 说明 | 4648| ---------- | ------- | ---- | ---------------------------------- | 4649| assets | Array<[PhotoAsset](#photoasset)> | 是 | 待从回收站中彻底删除的资产数组。 | 4650 4651**错误码:** 4652 4653接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4654 4655| 错误码ID | 错误信息 | 4656| -------- | ---------------------------------------- | 4657| 202 | Called by non-system application. | 4658| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4659| 14000011 | System inner fail. | 4660| 14000016 | Operation Not Support. | 4661 4662**示例:** 4663 4664```ts 4665import { dataSharePredicates } from '@kit.ArkData'; 4666 4667async function example() { 4668 console.info('deleteAssetsPermanentlyDemo'); 4669 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4670 let fetchOptions: photoAccessHelper.FetchOptions = { 4671 fetchColumns: [], 4672 predicates: predicates 4673 }; 4674 try { 4675 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH); 4676 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 4677 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions); 4678 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 4679 4680 let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 4681 albumChangeRequest.deleteAssets([asset]); 4682 await phAccessHelper.applyChanges(albumChangeRequest); 4683 console.info('succeed to deleteAssets permanently'); 4684 } catch (err) { 4685 console.error(`deleteAssetsPermanentlyDemo failed with error: ${err.code}, ${err.message}`); 4686 } 4687} 4688``` 4689 4690### setDisplayLevel<sup>11+</sup> 4691 4692setDisplayLevel(displayLevel: number): void 4693 4694设置人像相册的显示级别。 4695 4696**系统接口**:此接口为系统接口。 4697 4698**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4699 4700**参数:** 4701 4702| 参数名 | 类型 | 必填 | 说明 | 4703| ---------- | ------- | ---- | ---------------------------------- | 4704| displayLevel | number | 是 | 设置人像相册的显示级别, 0:取消该人像相册收藏;1:设置人像相册为首届面;2:设置人像相册为更多界面;3:设置人像相册为收藏界面。 | 4705 4706**错误码:** 4707 4708接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4709 4710| 错误码ID | 错误信息 | 4711| -------- | ---------------------------------------- | 4712| 202 | Called by non-system application. | 4713| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4714| 14000011 | System inner fail. | 4715 4716**示例:** 4717 4718``` ts 4719import { dataSharePredicates } from '@kit.ArkData'; 4720 4721async function example() { 4722 try { 4723 console.info('setDisplayLevel Example') 4724 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4725 predicates.equalTo('user_display_level', 2); 4726 let fetchOptions: photoAccessHelper.FetchOptions = { 4727 fetchColumns: [], 4728 predicates: predicates 4729 }; 4730 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.PORTRAIT, fetchOptions); 4731 let album: photoAccessHelper.Album = await fetchResult.getFirstObject(); 4732 let changeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 4733 changeRequest.setDisplayLevel(1); 4734 await phAccessHelper.applyChanges(changeRequest); 4735 } catch (err) { 4736 console.error(`setDisplayLevel failed with error: ${err.code}, ${err.message}`); 4737 } 4738} 4739``` 4740 4741### setIsMe<sup>11+</sup> 4742 4743setIsMe(): void 4744 4745将人像相册的人物关系设置为“我”。 4746 4747**系统接口**:此接口为系统接口。 4748 4749**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4750 4751**错误码:** 4752 4753接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4754 4755| 错误码ID | 错误信息 | 4756| -------- | ---------------------------------------- | 4757| 202 | Called by non-system application. | 4758| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 4759| 14000011 | System inner fail. | 4760 4761**示例:** 4762 4763``` ts 4764import { dataSharePredicates } from '@kit.ArkData'; 4765 4766async function example() { 4767 try { 4768 console.info('setIsMe Example') 4769 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4770 predicates.equalTo('user_display_level', 2); 4771 let fetchOptions: photoAccessHelper.FetchOptions = { 4772 fetchColumns: [], 4773 predicates: predicates 4774 }; 4775 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.PORTRAIT, fetchOptions); 4776 let album: photoAccessHelper.Album = await fetchResult.getFirstObject(); 4777 let changeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 4778 changeRequest.setIsMe(); 4779 await phAccessHelper.applyChanges(changeRequest); 4780 } catch (err) { 4781 console.error(`setIsMe failed with error: ${err.code}, ${err.message}`); 4782 } 4783} 4784``` 4785 4786### dismissAssets<sup>11+</sup> 4787 4788dismissAssets(assets: Array<PhotoAsset>): void 4789 4790从该人像相册或合影相册中移除指定图片。 4791 4792**系统接口**:此接口为系统接口。 4793 4794**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4795 4796**参数:** 4797 4798| 参数名 | 类型 | 必填 | 说明 | 4799| ---------- | ------- | ---- | ---------------------------------- | 4800| assets | Array<PhotoAsset> | 是 | 需要移除的文件列表 。 | 4801 4802**错误码:** 4803 4804接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4805 4806| 错误码ID | 错误信息 | 4807| -------- | ---------------------------------------- | 4808| 202 | Called by non-system application. | 4809| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4810| 14000011 | System inner fail. | 4811| 14000016 | Operation Not support. | 4812 4813**示例:** 4814 4815``` ts 4816import { dataSharePredicates } from '@kit.ArkData'; 4817 4818async function example() { 4819 try { 4820 console.info('dismissAssets Example') 4821 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4822 predicates.equalTo('user_display_level', 2); 4823 let fetchOptions: photoAccessHelper.FetchOptions = { 4824 fetchColumns: [], 4825 predicates: predicates 4826 }; 4827 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.PORTRAIT, fetchOptions); 4828 let album: photoAccessHelper.Album = await fetchResult.getFirstObject(); 4829 4830 let predicatesAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4831 let assetFetchOptions: photoAccessHelper.FetchOptions = { 4832 fetchColumns: [], 4833 predicates: predicatesAsset 4834 }; 4835 let assetFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(assetFetchOptions); 4836 let asset: photoAccessHelper.PhotoAsset = await assetFetchResult.getFirstObject(); 4837 4838 let changeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 4839 changeRequest.dismissAssets([asset]); 4840 await phAccessHelper.applyChanges(changeRequest); 4841 } catch (err) { 4842 console.error(`dismissAssets failed with error: ${err.code}, ${err.message}`); 4843 } 4844} 4845``` 4846 4847### mergeAlbum<sup>11+</sup> 4848 4849mergeAlbum(target: Album): void 4850 4851将两个人像相册合并。 4852 4853**系统接口**:此接口为系统接口。 4854 4855**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4856 4857**参数:** 4858 4859| 参数名 | 类型 | 必填 | 说明 | 4860| ---------- | ------- | ---- | ---------------------------------- | 4861| target | [Album](#album) | 是 | 需要合并的目标相册,合并相册必须重命名。 | 4862 4863**错误码:** 4864 4865接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4866 4867| 错误码ID | 错误信息 | 4868| -------- | ---------------------------------------- | 4869| 202 | Called by non-system application. | 4870| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4871| 14000011 | System inner fail. | 4872| 14000016 | Operation Not support. | 4873 4874**示例:** 4875 4876``` ts 4877import { dataSharePredicates } from '@kit.ArkData'; 4878 4879async function example() { 4880 try { 4881 console.info('mergeAlbum Example') 4882 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4883 predicates.equalTo('user_display_level', 2); 4884 let fetchOptions: photoAccessHelper.FetchOptions = { 4885 fetchColumns: [], 4886 predicates: predicates 4887 }; 4888 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.PORTRAIT, fetchOptions); 4889 let album: photoAccessHelper.Album = await fetchResult.getFirstObject(); 4890 if (fetchResult.isAfterLast()) { 4891 console.error('lack of album to merge'); 4892 return; 4893 } 4894 let target: photoAccessHelper.Album = await fetchResult.getNextObject(); 4895 4896 let changeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 4897 changeRequest.mergeAlbum(target); 4898 changeRequest.setAlbumName("testName"); 4899 await phAccessHelper.applyChanges(changeRequest); 4900 } catch (err) { 4901 console.error(`mergeAlbum failed with error: ${err.code}, ${err.message}`); 4902 } 4903} 4904``` 4905 4906### placeBefore<sup>11+</sup> 4907 4908placeBefore(album: Album): void; 4909 4910将当前相册排序到目标相册之前。 4911 4912**系统接口**:此接口为系统接口。 4913 4914**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4915 4916**参数:** 4917 4918| 参数名 | 类型 | 必填 | 说明 | 4919| ---------- | ------- | ---- | ---------------------------------- | 4920| album | [Album](#album) | 是 | 目标相册。如果要将当前相册排序到末位,则目标相册传入null。 | 4921 4922**错误码:** 4923 4924接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4925 4926| 错误码ID | 错误信息 | 4927| -------- | ---------------------------------------- | 4928| 202 | Called by non-system application. | 4929| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 4930| 14000011 | System inner fail. | 4931 4932**示例:** 4933 4934```ts 4935async function example() { 4936 console.info('placeBeforeDemo'); 4937 try { 4938 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 4939 let firstAlbum: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 4940 if (albumFetchResult.isAfterLast()) { 4941 console.error('lack of album to place before'); 4942 return; 4943 } 4944 let secondAlbum: photoAccessHelper.Album = await albumFetchResult.getNextObject(); 4945 let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(secondAlbum); 4946 albumChangeRequest.placeBefore(firstAlbum); 4947 await phAccessHelper.applyChanges(albumChangeRequest); 4948 console.info('placeBefore successfully'); 4949 } catch (err) { 4950 console.error(`placeBeforeDemo failed with error: ${err.code}, ${err.message}`); 4951 } 4952} 4953``` 4954 4955### dismiss<sup>13+</sup> 4956 4957dismiss(): void 4958 4959删除合影相册。 4960 4961**系统接口**:此接口为系统接口。 4962 4963**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4964 4965**错误码:** 4966 4967接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4968 4969| 错误码ID | 错误信息 | 4970| :------- | :-------------------------------- | 4971| 202 | Called by non-system application. | 4972| 401 | Parameter error. Possible causes: Incorrect parameter types. | 4973| 14000011 | System inner fail. | 4974 4975**示例:** 4976 4977```ts 4978import { dataSharePredicates } from '@kit.ArkData'; 4979 4980async function example() { 4981 console.info('dismissDemo'); 4982 try { 4983 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.GROUP_PHOTO); 4984 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 4985 4986 let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 4987 albumChangeRequest.dismiss(); 4988 await phAccessHelper.applyChanges(albumChangeRequest); 4989 console.info('dismiss successfully'); 4990 } catch (err) { 4991 console.error(`dismissDemo failed with error: ${err.code}, ${err.message}`); 4992 } 4993} 4994``` 4995 4996## HighlightAlbum<sup>12+</sup> 4997 4998时刻相册。 4999 5000**系统接口**:此接口为系统接口。 5001 5002**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5003 5004### constructor<sup>12+</sup> 5005 5006constructor(album: Album) 5007 5008构造函数。 5009 5010**系统接口**:此接口为系统接口。 5011 5012**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5013 5014**参数:** 5015 5016| 参数名 | 类型 | 必填 | 说明 | 5017| -------- | ------------------------- | ---- | ---------- | 5018| album | [Album](#album) | 是 | 智慧相册。 | 5019 5020**错误码:** 5021 5022接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 5023 5024| 错误码ID | 错误信息 | 5025| -------- | ---------------------------------------- | 5026| 202 | Called by non-system application. | 5027| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 5028| 14000011 | Internal system error. | 5029 5030**示例:** 5031 5032```ts 5033import { dataSharePredicates } from '@kit.ArkData'; 5034 5035async function example() { 5036 console.info('HighlightAlbum constructorDemo'); 5037 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 5038 let fetchOption: photoAccessHelper.FetchOptions = { 5039 fetchColumns: [], 5040 predicates: predicates 5041 }; 5042 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await photoAccessHelper.getAlbums( 5043 photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.HIGHLIGHT, fetchOption); 5044 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 5045 let highlightAlbum: photoAccessHelper.HighlightAlbum = new photoAccessHelper.HighlightAlbum(album); 5046 albumFetchResult.close(); 5047} 5048``` 5049 5050### getHighlightAlbumInfo<sup>12+</sup> 5051 5052getHighlightAlbumInfo(type: HighlightAlbumInfoType): Promise<string> 5053 5054获取指定时刻相册的特定信息。 5055 5056**系统接口**:此接口为系统接口。 5057 5058**需要权限**:ohos.permission.READ\_IMAGEVIDEO 5059 5060**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5061 5062**参数:** 5063 5064| 参数名 | 类型 | 必填 | 说明 | 5065| ---------- | ------- | ---- | ---------------------------------- | 5066| type | [HighlightAlbumInfoType](#highlightalbuminfotype12) | 是 | 需要获取的时刻相册信息类型。 | 5067 5068**错误码:** 5069 5070接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 5071 5072| 错误码ID | 错误信息 | 5073| :------- | :-------------------------------- | 5074| 201 | Permission denied. | 5075| 202 | Called by non-system application. | 5076| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 5077| 14000011 | Internal system error. | 5078 5079**示例:** 5080 5081```ts 5082import { dataSharePredicates } from '@kit.ArkData'; 5083 5084async function example() { 5085 try { 5086 console.info('getHighlightAlbumInfoDemo') 5087 let fetchOptions: photoAccessHelper.FetchOptions = { 5088 fetchColumns: [], 5089 predicates: new dataSharePredicates.DataSharePredicates() 5090 } 5091 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await photoAccessHelper.getAlbums( 5092 photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.HIGHLIGHT, fetchOption); 5093 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();、 5094 if (album != undefined) { 5095 let highlightAlbum: photoAccessHelper.HighlightAlbum = new photoAccessHelper.HighlightAlbum(album); 5096 let coverInfo: string = await highlightAlbum.getHighlightAlbumInfo( 5097 photoAccessHelper.HighlightAlbumInfoType.COVER_INFO); 5098 console.info('get cover info result: ' + JSON.stringify(coverInfo)); 5099 } 5100 5101 albumFetchResult.close(); 5102 } catch (err) { 5103 console.error(`getHighlightAlbumInfoDemofailed with error: ${err.code}, ${err.message}`); 5104 } 5105} 5106``` 5107 5108### getHighlightResource<sup>12+</sup> 5109 5110getHighlightResource(resourceUri: string): Promise<ArrayBuffer> 5111 5112获取指定时刻缓存资源的ArrayBuffer。 5113 5114**系统接口**:此接口为系统接口。 5115 5116**需要权限**:ohos.permission.READ\_IMAGEVIDEO 5117 5118**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5119 5120**参数:** 5121 5122| 参数名 | 类型 | 必填 | 说明 | 5123| ---------- | ------- | ---- | ---------------------------------- | 5124| resourceUri | string | 是 | 指定时刻缓存资源uri。 | 5125 5126**错误码:** 5127 5128接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 5129 5130| 错误码ID | 错误信息 | 5131| :------- | :-------------------------------- | 5132| 201 | Permission denied. | 5133| 202 | Called by non-system application. | 5134| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 5135| 14000011 | Internal system error. | 5136 5137**示例:** 5138 5139```ts 5140import { dataSharePredicates } from '@kit.ArkData'; 5141 5142async function example() { 5143 try { 5144 console.info('getHighlightResourceDemo') 5145 let fetchOptions: photoAccessHelper.FetchOptions = { 5146 fetchColumns: [], 5147 predicates: new dataSharePredicates.DataSharePredicates() 5148 } 5149 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await photoAccessHelper.getAlbums( 5150 photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.HIGHLIGHT, fetchOption); 5151 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();、 5152 if (album != undefined) { 5153 let highlightAlbum: photoAccessHelper.HighlightAlbum = new photoAccessHelper.HighlightAlbum(album); 5154 let uri: string = 'file://media/highlight/cover/10/1_1/background.png?oper=highlight' 5155 let arrayBuffer: ArrayBuffer = await highlightAlbum.getHighlightResource(uri); 5156 } 5157 albumFetchResult.close(); 5158 } catch (err) { 5159 console.error(`getHighlightResourceDemofailed with error: ${err.code}, ${err.message}`); 5160 } 5161} 5162``` 5163 5164### setHighlightUserActionData<sup>12+</sup> 5165 5166setHighlightUserActionData(type: HighlightUserActionType, actionData: number): Promise<void> 5167 5168设置指定时刻用户行为数据。 5169 5170**系统接口**:此接口为系统接口。 5171 5172**需要权限**:ohos.permission.WRITE\_IMAGEVIDEO 5173 5174**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5175 5176**参数:** 5177 5178| 参数名 | 类型 | 必填 | 说明 | 5179| ---------- | ------- | ---- | ---------------------------------- | 5180| type | [HighlightUserActionType](#highlightuseractiontype12) | 是 | 需要设置的用户行为数据类型。 | 5181| actionData | number | 是 | 行为数据。 | 5182 5183**错误码:** 5184 5185接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 5186 5187| 错误码ID | 错误信息 | 5188| :------- | :-------------------------------- | 5189| 201 | Permission denied. | 5190| 202 | Called by non-system application. | 5191| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 5192| 14000011 | Internal system error. | 5193 5194**示例:** 5195 5196```ts 5197import { dataSharePredicates } from '@kit.ArkData'; 5198 5199async function example() { 5200 try { 5201 console.info('setHighlightUserActionDataDemo') 5202 let fetchOptions: photoAccessHelper.FetchOptions = { 5203 fetchColumns: [], 5204 predicates: new dataSharePredicates.DataSharePredicates() 5205 } 5206 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await photoAccessHelper.getAlbums( 5207 photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.HIGHLIGHT, fetchOption); 5208 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject();、 5209 if (album != undefined) { 5210 let highlightAlbum: photoAccessHelper.HighlightAlbum = new photoAccessHelper.HighlightAlbum(album); 5211 highlightAlbum.setHighlightUserActionData(photoAccessHelper.HighlightUserActionType.INSERTED_PIC_COUNT, 1); 5212 } 5213 albumFetchResult.close(); 5214 } catch (err) { 5215 console.error(`setHighlightUserActionDataDemofailed with error: ${err.code}, ${err.message}`); 5216 } 5217} 5218``` 5219 5220## CloudEnhancement<sup>13+</sup> 5221 5222云增强管理类,该类用于生成AI云增强照片任务的管理、获取原照片与AI云增强照片的关联关系。 5223 5224**系统接口**:此接口为系统接口。 5225 5226**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5227 5228### getCloudEnhancementInstance<sup>13+</sup> 5229 5230static getCloudEnhancementInstance(context: Context): CloudEnhancement 5231 5232获取云增强类实例。 5233 5234**系统接口**:此接口为系统接口。 5235 5236**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5237 5238**参数:** 5239 5240| 参数名 | 类型 | 必填 | 说明 | 5241| -------- | ------------------------- | ---- | ---------- | 5242| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。 | 5243 5244**错误码:** 5245 5246接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 5247 5248| 错误码ID | 错误信息 | 5249| -------- | ---------------------------------------- | 5250| 202 | Called by non-system application. | 5251| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 5252| 14000011 | Internal system error. | 5253 5254**示例:** 5255 5256```ts 5257import { dataSharePredicates } from '@kit.ArkData'; 5258 5259async function example() { 5260 console.info('getCloudEnhancementInstanceDemo'); 5261 let photoPredicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 5262 let photoFetchOptions: photoAccessHelper.FetchOptions = { 5263 fetchColumns: [], 5264 predicates: photoPredicates 5265 }; 5266 let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context); 5267 try { 5268 let fetchResult = await phAccessHelper.getAssets(photoFetchOptions); 5269 let asset = await fetchResult.getLastObject(); 5270 let cloudEnhancementInstance: photoAccessHelper.CloudEnhancement 5271 = photoAccessHelper.CloudEnhancement.getCloudEnhancementInstance(context); 5272 let hasCloudWatermark = true; 5273 await cloudEnhancementInstance.submitCloudEnhancementTasks([asset], hasCloudWatermark); 5274 } catch (err) { 5275 console.error(`getCloudEnhancementInstanceDemo failed with error: ${err.code}, ${err.message}`); 5276 } 5277} 5278``` 5279 5280### submitCloudEnhancementTasks<sup>13+</sup> 5281 5282submitCloudEnhancementTasks(photoAssets: Array<PhotoAsset>, hasCloudWatermark: boolean): Promise<void> 5283 5284提交云增强任务。 5285 5286**系统接口**:此接口为系统接口。 5287 5288**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5289 5290**参数:** 5291 5292| 参数名 | 类型 | 必填 | 说明 | 5293| -------- | ------------------------- | ---- | ---------- | 5294| photoAssets | Array<[PhotoAsset](#photoasset)> | 是 | 需要增强照片的[PhotoAsset](#photoasset)集合。 | 5295| hasCloudWatermark | boolean | 是 | 增强后图片是否添加云增强水印。 | 5296 5297**错误码:** 5298 5299接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 5300 5301| 错误码ID | 错误信息 | 5302| -------- | ---------------------------------------- | 5303| 201 | Permission denied. | 5304| 202 | Called by non-system application. | 5305| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 5306| 14000011 | Internal system error. | 5307 5308**示例:** 5309 5310```ts 5311import { dataSharePredicates } from '@kit.ArkData'; 5312 5313async function example() { 5314 console.info('submitCloudEnhancementTasksDemo'); 5315 let photoPredicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 5316 let photoFetchOptions: photoAccessHelper.FetchOptions = { 5317 fetchColumns: [], 5318 predicates: photoPredicates 5319 }; 5320 let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context); 5321 try { 5322 let fetchResult = await phAccessHelper.getAssets(photoFetchOptions); 5323 let asset = await fetchResult.getLastObject(); 5324 let cloudEnhancementInstance: photoAccessHelper.CloudEnhancement 5325 = photoAccessHelper.CloudEnhancement.getCloudEnhancementInstance(context); 5326 let hasCloudWatermark = true; 5327 await cloudEnhancementInstance.submitCloudEnhancementTasks([asset], hasCloudWatermark); 5328 } catch (err) { 5329 console.error(`submitCloudEnhancementTasksDemo failed with error: ${err.code}, ${err.message}`); 5330 } 5331} 5332``` 5333 5334### prioritizeCloudEnhancementTask<sup>13+</sup> 5335 5336prioritizeCloudEnhancementTask(photoAsset: PhotoAsset): Promise<void> 5337 5338提升指定云增强任务的优先级。 5339 5340**系统接口**:此接口为系统接口。 5341 5342**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5343 5344**参数:** 5345 5346| 参数名 | 类型 | 必填 | 说明 | 5347| -------- | ------------------------- | ---- | ---------- | 5348| photoAsset | [PhotoAsset](#photoasset) | 是 | 需要修改云增强优先级照片的[PhotoAsset](#photoasset)。 | 5349 5350**错误码:** 5351 5352接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 5353 5354| 错误码ID | 错误信息 | 5355| -------- | ---------------------------------------- | 5356| 201 | Permission denied. | 5357| 202 | Called by non-system application. | 5358| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 5359| 14000011 | Internal system error. | 5360 5361**示例:** 5362 5363```ts 5364import { dataSharePredicates } from '@kit.ArkData'; 5365 5366async function example() { 5367 console.info('prioritizeCloudEnhancementTaskDemo'); 5368 let photoPredicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 5369 // 查询进行中的云增强任务 5370 photoPredicates.equalTo(photoAccessHelper.PhotoKeys.CE_AVAILABLE, 2); 5371 let photoFetchOptions: photoAccessHelper.FetchOptions = { 5372 fetchColumns: [], 5373 predicates: photoPredicates 5374 }; 5375 let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context); 5376 try { 5377 let fetchResult = await phAccessHelper.getAssets(photoFetchOptions); 5378 let asset = await fetchResult.getLastObject(); 5379 let cloudEnhancementInstance: photoAccessHelper.CloudEnhancement 5380 = photoAccessHelper.CloudEnhancement.getCloudEnhancementInstance(context); 5381 let hasCloudWatermark = true; 5382 await cloudEnhancementInstance.prioritizeCloudEnhancementTask(asset); 5383 } catch (err) { 5384 console.error(`prioritizeCloudEnhancementTaskDemo failed with error: ${err.code}, ${err.message}`); 5385 } 5386} 5387``` 5388 5389### cancelCloudEnhancementTasks<sup>13+</sup> 5390 5391cancelCloudEnhancementTasks(photoAssets: Array<PhotoAsset>): Promise<void> 5392 5393取消指定云增强任务。 5394 5395**系统接口**:此接口为系统接口。 5396 5397**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5398 5399**参数:** 5400 5401| 参数名 | 类型 | 必填 | 说明 | 5402| -------- | ------------------------- | ---- | ---------- | 5403| photoAssets | Array<[PhotoAsset](#photoasset)> | 是 | 需要取消云增强任务的[PhotoAsset](#photoasset)集合。 | 5404 5405**错误码:** 5406 5407接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 5408 5409| 错误码ID | 错误信息 | 5410| -------- | ---------------------------------------- | 5411| 201 | Permission denied. | 5412| 202 | Called by non-system application. | 5413| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 5414| 14000011 | Internal system error. | 5415 5416**示例:** 5417 5418```ts 5419import { dataSharePredicates } from '@kit.ArkData'; 5420 5421async function example() { 5422 console.info('cancelCloudEnhancementTasksDemo'); 5423 let photoPredicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 5424 // 查询进行中的云增强任务 5425 photoPredicates.equalTo(photoAccessHelper.PhotoKeys.CE_AVAILABLE, 2); 5426 let photoFetchOptions: photoAccessHelper.FetchOptions = { 5427 fetchColumns: [], 5428 predicates: photoPredicates 5429 }; 5430 let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context); 5431 try { 5432 let fetchResult = await phAccessHelper.getAssets(photoFetchOptions); 5433 let asset = await fetchResult.getLastObject(); 5434 let cloudEnhancementInstance: photoAccessHelper.CloudEnhancement 5435 = photoAccessHelper.CloudEnhancement.getCloudEnhancementInstance(context); 5436 await cloudEnhancementInstance.cancelCloudEnhancementTasks([asset]); 5437 } catch (err) { 5438 console.error(`cancelCloudEnhancementTasksDemo failed with error: ${err.code}, ${err.message}`); 5439 } 5440} 5441``` 5442 5443### cancelAllCloudEnhancementTasks<sup>13+</sup> 5444 5445cancelAllCloudEnhancementTasks(): Promise<void> 5446 5447取消全部云增强任务。 5448 5449**系统接口**:此接口为系统接口。 5450 5451**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5452 5453**错误码:** 5454 5455接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 5456 5457| 错误码ID | 错误信息 | 5458| -------- | ---------------------------------------- | 5459| 201 | Permission denied. | 5460| 202 | Called by non-system application. | 5461| 14000011 | Internal system error. | 5462 5463**示例:** 5464 5465```ts 5466import { dataSharePredicates } from '@kit.ArkData'; 5467 5468async function example() { 5469 console.info('cancelAllCloudEnhancementTasksDemo'); 5470 try { 5471 let cloudEnhancementInstance: photoAccessHelper.CloudEnhancement 5472 = photoAccessHelper.CloudEnhancement.getCloudEnhancementInstance(context); 5473 await cloudEnhancementInstance.cancelCloudEnhancementTasks(); 5474 } catch (err) { 5475 console.error(`cancelAllCloudEnhancementTasksDemo failed with error: ${err.code}, ${err.message}`); 5476 } 5477} 5478``` 5479 5480### queryCloudEnhancementTaskState<sup>13+</sup> 5481 5482queryCloudEnhancementTaskState(photoAsset: PhotoAsset): Promise<CloudEnhancementTaskState> 5483 5484查询云增强任务信息。 5485 5486**系统接口**:此接口为系统接口。 5487 5488**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5489 5490**参数:** 5491 5492| 参数名 | 类型 | 必填 | 说明 | 5493| -------- | ------------------------- | ---- | ---------- | 5494| photoAsset | [PhotoAsset](#photoasset) | 是 | 需要查询云增强任务信息的[PhotoAsset](#photoasset)。 | 5495 5496**错误码:** 5497 5498接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 5499 5500| 错误码ID | 错误信息 | 5501| -------- | ---------------------------------------- | 5502| 201 | Permission denied. | 5503| 202 | Called by non-system application. | 5504| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 5505| 14000011 | Internal system error. | 5506 5507**示例:** 5508 5509```ts 5510import { dataSharePredicates } from '@kit.ArkData'; 5511 5512async function example() { 5513 console.info('queryCloudEnhancementTaskStateDemo'); 5514 let photoPredicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 5515 // 查询进行中的云增强任务 5516 photoPredicates.equalTo(photoAccessHelper.PhotoKeys.CE_AVAILABLE, 2); 5517 let photoFetchOptions: photoAccessHelper.FetchOptions = { 5518 fetchColumns: [], 5519 predicates: photoPredicates 5520 }; 5521 let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context); 5522 try { 5523 let fetchResult = await phAccessHelper.getAssets(photoFetchOptions); 5524 let asset = await fetchResult.getLastObject(); 5525 let cloudEnhancementInstance: photoAccessHelper.CloudEnhancement 5526 = photoAccessHelper.CloudEnhancement.getCloudEnhancementInstance(context); 5527 const cloudEnhancementTaskState: photoAccessHelper.CloudEnhancementTaskState 5528 = await cloudEnhancementInstance.queryCloudEnhancementTaskState(asset); 5529 let taskStage = cloudEnhancementTaskState.taskStage; 5530 if (taskStage == photoAccessHelper.CloudEnhancementTaskStage.TASK_STAGE_EXCEPTION) { 5531 console.log("task has exception"); 5532 } else if (taskStage == photoAccessHelper.CloudEnhancementTaskStage.TASK_STAGE_PREPARING) { 5533 console.log("task is preparing"); 5534 } else if (taskStage == photoAccessHelper.CloudEnhancementTaskStage.TASK_STAGE_UPLOADING) { 5535 let transferredFileSize = cloudEnhancementTaskState.transferredFileSize; 5536 let totalFileSize = cloudEnhancementTaskState.totalFileSize; 5537 let message = `task is uploading, transferredFileSize: ${transferredFileSize}, totalFileSize: ${totalFileSize}`; 5538 console.log(message); 5539 } else if (taskStage == photoAccessHelper.CloudEnhancementTaskStage.TASK_STAGE_EXECUTING) { 5540 let expectedDuration = cloudEnhancementTaskState.expectedDuration; 5541 let message = `task is executing, expectedDuration: ${expectedDuration}`; 5542 console.log(message); 5543 } else if (taskStage == photoAccessHelper.CloudEnhancementTaskStage.TASK_STAGE_DOWNLOADING) { 5544 let transferredFileSize = cloudEnhancementTaskState.transferredFileSize; 5545 let totalFileSize = cloudEnhancementTaskState.totalFileSize; 5546 let message = `task is downloading, transferredFileSize: ${transferredFileSize}, totalFileSize: ${totalFileSize}`; 5547 console.log(message); 5548 } else if (taskStage == photoAccessHelper.CloudEnhancementTaskStage.TASK_STAGE_FAILED) { 5549 let errCode = cloudEnhancementTaskState.statusCode; 5550 let message = `task is failed, errCode: ${errCode}`; 5551 console.log(message); 5552 } else if (taskStage == photoAccessHelper.CloudEnhancementTaskStage.TASK_STAGE_COMPLETED) { 5553 console.log("task is completed"); 5554 } 5555 } catch (err) { 5556 console.error(`queryCloudEnhancementTaskStateDemo failed with error: ${err.code}, ${err.message}`); 5557 } 5558} 5559``` 5560 5561### syncCloudEnhancementTaskStatus<sup>13+</sup> 5562 5563syncCloudEnhancementTaskStatus(): Promise<void> 5564 5565同步云增强任务状态。 5566 5567**系统接口**:此接口为系统接口。 5568 5569**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5570 5571**错误码:** 5572 5573接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 5574 5575| 错误码ID | 错误信息 | 5576| -------- | ---------------------------------------- | 5577| 201 | Permission denied. | 5578| 202 | Called by non-system application. | 5579| 14000011 | Internal system error. | 5580 5581**示例:** 5582 5583```ts 5584import { dataSharePredicates } from '@kit.ArkData'; 5585 5586async function example() { 5587 console.info('syncCloudEnhancementTaskStatusDemo'); 5588 try { 5589 let cloudEnhancementInstance: photoAccessHelper.CloudEnhancement 5590 = photoAccessHelper.CloudEnhancement.getCloudEnhancementInstance(context); 5591 await cloudEnhancementInstance.syncCloudEnhancementTaskStatus(); 5592 } catch (err) { 5593 console.error(`syncCloudEnhancementTaskStatusDemo failed with error: ${err.code}, ${err.message}`); 5594 } 5595} 5596``` 5597 5598### getCloudEnhancementPair<sup>13+</sup> 5599 5600getCloudEnhancementPair(asset: PhotoAsset): Promise<PhotoAsset> 5601 5602查询云增强配对照片。 5603 5604**系统接口**:此接口为系统接口。 5605 5606**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5607 5608**参数:** 5609 5610| 参数名 | 类型 | 必填 | 说明 | 5611| -------- | ------------------------- | ---- | ---------- | 5612| photoAsset | [PhotoAsset](#photoasset) | 是 | 需要修改云增强优先级照片的[PhotoAsset](#photoasset)。 | 5613 5614**错误码:** 5615 5616接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 5617 5618| 错误码ID | 错误信息 | 5619| -------- | ---------------------------------------- | 5620| 201 | Permission denied. | 5621| 202 | Called by non-system application. | 5622| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 5623| 14000011 | Internal system error. | 5624 5625**示例:** 5626 5627```ts 5628import { dataSharePredicates } from '@kit.ArkData'; 5629 5630async function example() { 5631 console.info('getCloudEnhancementPairDemo'); 5632 let photoPredicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 5633 // 查询已完成的云增强任务 5634 photoPredicates.equalTo(photoAccessHelper.PhotoKeys.CE_AVAILABLE, 5); 5635 let photoFetchOptions: photoAccessHelper.FetchOptions = { 5636 fetchColumns: [], 5637 predicates: photoPredicates 5638 }; 5639 let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context); 5640 try { 5641 let fetchResult = await phAccessHelper.getAssets(photoFetchOptions); 5642 let asset = await fetchResult.getLastObject(); 5643 let cloudEnhancementInstance: photoAccessHelper.CloudEnhancement 5644 = photoAccessHelper.CloudEnhancement.getCloudEnhancementInstance(context); 5645 let photoAsset: photoAccessHelper.PhotoAsset 5646 = await cloudEnhancementInstance.getCloudEnhancementPair(asset); 5647 } catch (err) { 5648 console.error(`getCloudEnhancementPairDemo failed with error: ${err.code}, ${err.message}`); 5649 } 5650} 5651``` 5652 5653### setVideoEnhancementAttr<sup>13+</sup> 5654 5655setVideoEnhancementAttr(videoEnhancementType: VideoEnhancementType, photoId: string): Promise<void> 5656 5657**系统接口**:此接口为系统接口。 5658 5659**需要权限**:ohos.permission.WRITE\_IMAGEVIDEO 5660 5661**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5662 5663**参数:** 5664 5665| 参数名 | 类型 | 必填 | 说明 | 5666| ---------- | ------- | ---- | ---------------------------------- | 5667| videoEnhancementType | [VideoEnhancementType](#videoenhancementtype13) | 是 | 需要进行分段式视频的处理类型。 | 5668| photoId | string | 是 | 图片的photoId。 | 5669 5670**错误码:** 5671 5672接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 5673 5674| 错误码ID | 错误信息 | 5675| :------- | :-------------------------------- | 5676| 202 | Called by non-system application. | 5677| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 5678| 14000011 | Internal system error. | 5679| 14000016 | Operation Not Support. | 5680 5681**示例:** 5682 5683```ts 5684async function example(asset: photoAccessHelper.PhotoAsset) { 5685 try { 5686 let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset); 5687 let photoId = "202410011800"; 5688 assetChangeRequest.setVideoEnhancementAttr(photoAccessHelper.VideoEnhancementType.QUALITY_ENHANCEMENT_LOCAL, photoId); 5689 await phAccessHelper.applyChanges(assetChangeRequest); 5690 } catch (err) { 5691 console.error(`setVideoEnhancementAttr fail with error: ${err.code}, ${err.message}`); 5692 } 5693} 5694``` 5695 5696## PhotoSubtype 5697 5698枚举,不同[PhotoAsset](#photoasset)的类型。 5699 5700**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5701 5702| 名称 | 值 | 说明 | 5703| ----- | ---- | ---- | 5704| SCREENSHOT | 1 | 截屏录屏文件类型。**系统接口**:此接口为系统接口。 | 5705 5706## PositionType 5707 5708枚举,文件位置,表示文件在本地或云端。 5709 5710**系统接口**:此接口为系统接口。 5711 5712**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5713 5714| 名称 | 值 | 说明 | 5715| ----- | ---- | ---- | 5716| LOCAL | 1 << 0 | 文件只存在于本端设备。 | 5717| CLOUD | 1 << 1 | 文件只存在于云端。 | 5718 5719## AlbumType 5720 5721枚举,相册类型,表示是用户相册还是系统预置相册。 5722 5723**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5724 5725| 名称 | 值 | 说明 | 5726| ------------------- | ---- | ------------------------- | 5727| SMART<sup>11+</sup> | 4096 | 智慧分析相册。**系统接口**:此接口为系统接口。 | 5728 5729## AlbumSubtype 5730 5731枚举,相册子类型,表示具体的相册类型。 5732 5733**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5734 5735| 名称 | 值 | 说明 | 5736| --------------------------------- | ---------- | ------------------------------- | 5737| HIDDEN | 1027 | 隐藏相册。**系统接口**:此接口为系统接口。 | 5738| TRASH | 1028 | 回收站。**系统接口**:此接口为系统接口。 | 5739| SCREENSHOT | 1029 | 截屏和录屏相册。**系统接口**:此接口为系统接口。 | 5740| CAMERA | 1030 | 相机拍摄的照片和视频相册。**系统接口**:此接口为系统接口。 | 5741| SOURCE\_GENERIC<sup>11+</sup> | 2049 | 来源相册。**系统接口**:此接口为系统接口。 | 5742| CLASSIFY<sup>11+</sup> | 4097 | 分类相册。**系统接口**:此接口为系统接口。 | 5743| GEOGRAPHY\_LOCATION<sup>11+</sup> | 4099 | 地图相册。**系统接口**:此接口为系统接口。 | 5744| GEOGRAPHY\_CITY<sup>11+</sup> | 4100 | 城市相册。**系统接口**:此接口为系统接口。 | 5745| SHOOTING\_MODE<sup>11+</sup> | 4101 | 拍摄模式相册。**系统接口**:此接口为系统接口。 | 5746| PORTRAIT<sup>11+</sup> | 4102 | 人像相册。**系统接口**:此接口为系统接口。 | 5747| GROUP_PHOTO<sup>13+</sup> | 4103 | 合影相册。**系统接口**:此接口为系统接口。 | 5748| HIGHLIGHT<sup>12+</sup> | 4104 | 时刻相册。**系统接口**:此接口为系统接口。 | 5749| HIGHLIGHT_SUGGESTIONS<sup>12+</sup> | 4105 | 时刻建议相册。**系统接口**:此接口为系统接口。 | 5750| CLOUD_ENHANCEMENT<sup>13+</sup> | 1032 | AI云增强相册。**系统接口**:此接口为系统接口。 | 5751 5752## RequestPhotoType<sup>11+</sup> 5753 5754枚举,获取图片或视频缩略图的操作类型。 5755 5756**系统接口**:此接口为系统接口。 5757 5758**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5759 5760| 名称 | 值 | 说明 | 5761| ----- | ---- | ---- | 5762| REQUEST_ALL_THUMBNAILS | 0 | 即获取快速缩略图,又获取质量缩略图。 | 5763| REQUEST_FAST_THUMBNAIL | 1 | 只获取快速缩略图。 | 5764| REQUEST_QUALITY_THUMBNAIL | 2 | 只获取质量缩略图。 | 5765 5766## PhotoKeys 5767 5768枚举,图片和视频文件关键信息。 5769 5770**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5771 5772| 名称 | 值 | 说明 | 5773| ------------- | ------------------- | ---------------------------------------------------------- | 5774| POSITION | 'position' | 文件位置类型。**系统接口**:此接口为系统接口。 | 5775| DATE_TRASHED | 'date_trashed' | 删除日期(删除文件时间距1970年1月1日的秒数值)。**系统接口**:此接口为系统接口。 | 5776| HIDDEN | 'hidden' | 文件的隐藏状态。**系统接口**:此接口为系统接口。 | 5777| CAMERA_SHOT_KEY | 'camera_shot_key' | 锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。**系统接口**:此接口为系统接口。 | 5778| USER_COMMENT<sup>10+</sup> | 'user_comment' | 用户注释信息。**系统接口**:此接口为系统接口。 | 5779| DATE_YEAR<sup>11+</sup> | 'date_year' | 创建文件的年份。**系统接口**:此接口为系统接口。 | 5780| DATE_MONTH<sup>11+</sup> | 'date_month' | 创建文件的月份。**系统接口**:此接口为系统接口。 | 5781| DATE_DAY<sup>11+</sup> | 'date_day' | 创建文件的日期。**系统接口**:此接口为系统接口。 | 5782| PENDING<sup>11+</sup> | 'pending' | pending状态。**系统接口**:此接口为系统接口。 | 5783| DATE_TRASHED_MS<sup>12+</sup> | 'date_trashed_ms' | 删除日期(删除文件时间距1970年1月1日的毫秒数值)。**系统接口**:此接口为系统接口。<br>注意:查询照片时,不支持基于该字段排序。 | 5784| MOVING_PHOTO_EFFECT_MODE<sup>12+</sup> | 'moving_photo_effect_mode' | 动态照片效果模式。**系统接口**:此接口为系统接口。 | 5785| CE_AVAILABLE<sup>13+</sup> | 'ce_available' | 云增强任务标识。**系统接口**:此接口为系统接口。 | 5786 5787## HiddenPhotosDisplayMode<sup>11+</sup> 5788 5789枚举,系统中隐藏文件显示模式。 5790 5791**系统接口**:此接口为系统接口。 5792 5793**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5794 5795| 名称 | 值 | 说明 | 5796| ------------- | ------------------- | ---------------------------------------------------------- | 5797| ASSETS_MODE | 0 | 按系统预置的隐藏相册显示隐藏文件,即显示系统中所有的隐藏文件。 | 5798| ALBUMS_MODE | 1 | 按相册显示隐藏文件(即显示系统中所有包含隐藏文件的相册,除系统预置的隐藏相册本身和回收站相册以外)。 | 5799 5800## PhotoCreateOptions 5801 5802图片或视频的创建选项。 5803 5804**系统接口**:此接口为系统接口。 5805 5806**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5807 5808| 名称 | 类型 | 必填 | 说明 | 5809| ---------------------- | ------------------- | ---- | ------------------------------------------------ | 5810| subtype | [PhotoSubtype](#photosubtype) | 否 | 图片或者视频的子类型。 | 5811| cameraShotKey | string | 否 | 锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。 | 5812 5813## RequestPhotoOptions<sup>11+</sup> 5814 5815获取图片或视频缩略图的选项。 5816 5817**系统接口**:此接口为系统接口。 5818 5819**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5820 5821| 名称 | 类型 | 必填 | 说明 | 5822| ---------------------- | ------------------- | ---- | ------------------------------------------------ | 5823| size | [image.Size](../apis-image-kit/js-apis-image.md#size) | 否 | 获取缩略图的尺寸。 | 5824| requestPhotoType | [RequestPhotoType](#requestphototype11) | 否 | 获取的操作类型。 | 5825 5826## RequestOptions<sup>11+</sup> 5827 5828请求策略。 5829 5830**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5831 5832| 名称 | 类型 | 可读 | 可写 | 说明 | 5833| ---------------------- |---------------------------------| ---- |---- | ------------------------------------------------ | 5834| sourceMode | [SourceMode](#sourcemode11) | 是 | 是 | 资源文件的读取类型,可以指定当前请求获取的是源文件,或是编辑后的文件。**系统接口**:此接口为系统接口。 | 5835 5836## PhotoProxy<sup>11+</sup> 5837 5838照片代理,相机应用通过该对象写入图片数据。 5839 5840**系统接口**:此接口为系统接口。 5841 5842**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5843 5844## MediaChangeRequest<sup>11+</sup> 5845 5846媒体变更请求,资产变更请求和相册变更请求的父类型。 5847 5848**注意**:媒体变更请求需要在调用[applyChanges](js-apis-photoAccessHelper.md#applychanges11)后才会提交生效。 5849 5850**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5851 5852## FormInfo<sup>11+</sup> 5853 5854图库卡片相关信息。 5855 5856**系统接口**:此接口为系统接口。 5857 5858**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5859 5860| 名称 | 类型 | 必填 | 说明 | 5861| ---------------------- | ------------------- | ---- | ------------------------------------------------ | 5862|formId |string |是 | 卡片的ID,由图库创建卡片时提供。 | 5863|uri |string |是 | 卡片绑定的图片的uri。创建卡片时uri可为空或图片的uri,移除卡片时uri不做校验,传空即可。 | 5864 5865## ResourceType<sup>11+</sup> 5866 5867枚举,写入资源的类型。 5868 5869**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5870 5871| 名称 | 值 | 说明 | 5872| ----- | ---- | ---- | 5873| PHOTO_PROXY | 3 | 表示照片代理资源。**系统接口**:此接口为系统接口。 | 5874| PRIVATE_MOVING_PHOTO_RESOURCE<sup>13+</sup> | 4 | 表示私有动态照片资源。**系统接口**:此接口为系统接口。 | 5875 5876## DefaultChangeUri 5877 5878枚举,DefaultChangeUri子类型。 5879 5880**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5881 5882| 名称 | 值 | 说明 | 5883| ----------------- | ----------------------- | ------------------------------------------------------------ | 5884| DEFAULT_HIDDEN_ALBUM_URI<sup>11+</sup> | 'file://media/HiddenAlbum' | 隐藏相册-相册视图中相册的Uri,即系统中包含隐藏文件的相册(不包含系统预置隐藏相册和回收站相册)的Uri,仅用于隐藏相册-相册视图场景的通知。**系统接口**:此接口为系统接口。 | 5885 5886## SourceMode<sup>11+</sup> 5887 5888枚举,资源文件的读取类型。 5889 5890**系统接口**:此接口为系统接口。 5891 5892**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5893 5894| 名称 | 值 | 说明 | 5895| ----- | ---- | ---- | 5896| ORIGINAL_MODE | 0 | 读取源文件。 | 5897| EDITED_MODE | 1 | 读取编辑后的文件。| 5898## AuthorizationMode<sup>12+</sup> 5899 5900枚举,授权模式。 5901 5902**系统接口**:此接口为系统接口。 5903 5904**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5905 5906| 名称 | 值 | 说明 | 5907| ----- | ---- | ---- | 5908| SHORT_TIME_AUTHORIZATION| 0 | 短时授权。 | 5909 5910## AnalysisType<sup>11+</sup> 5911 5912枚举,智慧分析类型。 5913 5914**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5915 5916| 名称 | 值 | 说明 | 5917| :---------------------------- | :- | :------- | 5918| ANALYSIS\_AESTHETICS\_SCORE | 0 | 美学评分分析类别。**系统接口**:此接口为系统接口。 | 5919| ANALYSIS\_LABEL | 1 | 分类标签分析类别。**系统接口**:此接口为系统接口。 | 5920| ANALYSIS\_OCR | 2 | 文字识别分析类别。**系统接口**:此接口为系统接口。 | 5921| ANALYSIS\_FACE | 3 | 人脸检测分析类别。**系统接口**:此接口为系统接口。 | 5922| ANALYSIS\_OBJECT | 4 | 目标检测分析类别。**系统接口**:此接口为系统接口。 | 5923| ANALYSIS\_RECOMMENDATION | 5 | 推荐构图分析类别。**系统接口**:此接口为系统接口。 | 5924| ANALYSIS\_SEGMENTATION | 6 | 抠图分析类别。**系统接口**:此接口为系统接口。 | 5925| ANALYSIS\_COMPOSITION | 7 | 美学构图分析类别。**系统接口**:此接口为系统接口。 | 5926| ANALYSIS\_SALIENCY | 8 | 最佳呈现主体中心分析类别。**系统接口**:此接口为系统接口。 | 5927| ANALYSIS\_DETAIL\_ADDRESS | 9 | 详细地址分析类别。**系统接口**:此接口为系统接口。 | 5928| ANALYSIS\_HUMAN\_FACE\_TAG<sup>12+</sup> | 10 | 人像聚类信息分析类别。**系统接口**:此接口为系统接口。 | 5929| ANALYSIS\_HEAD\_POSITION<sup>12+</sup> | 11 | 人头、宠物头位置分析类别。**系统接口**:此接口为系统接口。 | 5930| ANALYSIS\_BONE\_POSE<sup>12+</sup> | 12 | 人体骨骼点信息分析类别。**系统接口**:此接口为系统接口。 | 5931| ANALYSIS\_VIDEO\_LABEL<sup>12+</sup> | 13 | 视频标签。**系统接口**:此接口为系统接口。 | 5932 5933## HighlightAlbumInfoType<sup>12+</sup> 5934 5935枚举,时刻相册信息类型。 5936 5937**系统接口**:此接口为系统接口。 5938 5939**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5940 5941| 名称 | 值 | 说明 | 5942| :------------ | :- | :------- | 5943| COVER\_INFO | 0 | 封面信息类别。 | 5944| PLAY\_INFO | 1 | 音乐信息类别。 | 5945 5946## HighlightUserActionType<sup>12+</sup> 5947 5948枚举,时刻用户行为类型。 5949 5950**系统接口**:此接口为系统接口。 5951 5952**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5953 5954| 名称 | 值 | 说明 | 5955| :---------------------------- | :- | :------- | 5956| INSERTED\_PIC\_COUNT | 0 | 新增图片数量类别。 | 5957| REMOVED\_PIC\_COUNT | 1 | 移除图片数量类别。 | 5958| SHARED\_SCREENSHOT\_COUNT | 2 | 分享二级界面长图次数类别。 | 5959| SHARED\_COVER\_COUNT | 3 | 分享时刻封面次数类别。 | 5960| RENAMED\_COUNT | 4 | 重命名次数类别。 | 5961| CHANGED\_COVER\_COUNT | 5 | 修改封面次数类别。 | 5962| RENDER\_VIEWED\_TIMES | 100 | 轮播观看次数类别。 | 5963| RENDER\_VIEWED\_DURATION | 101 | 轮播观看总时长类别。 | 5964| ART\_LAYOUT\_VIEWED\_TIMES | 102 | 二级界面观看次数类别。 | 5965| ART\_LAYOUT\_VIEWED\_DURATION | 103 | 二级界面观看总时长类别。 | 5966 5967## MovingPhotoEffectMode<sup>12+</sup> 5968 5969枚举,动态照片效果模式。 5970 5971**系统接口**:此接口为系统接口。 5972 5973**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5974 5975| 名称 | 值 | 说明 | 5976| :---------------------------- | :- | :------- | 5977| DEFAULT | 0 | 默认模式。| 5978| BOUNCE\_PLAY | 1 | 来回播放。| 5979| LOOP\_PLAY | 2 | 循环播放。| 5980| LONG\_EXPOSURE | 3 | 长曝光。 | 5981| MULTI\_EXPOSURE | 4 | 多曝光。 | 5982| CINEMA\_GRAPH<sup>13+</sup> | 5 | 微动瞬间。 | 5983| IMAGE\_ONLY<sup>13+</sup> | 10 | 关闭模式。 | 5984 5985## PhotoPermissionType<sup>12+</sup> 5986 5987枚举,应用对媒体资源不同访问权限的类型。 5988 5989包括临时读权限和永久读权限,临时读权限会随着应用的死亡而删除,永久读权限不会。 5990 5991同一个应用对同一个媒体资源的权限覆盖规则:永久读会覆盖临时读,而临时读不会覆盖永久读。 5992 5993**系统接口**:此接口为系统接口。 5994 5995**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 5996 5997| 名称 | 值 | 说明 | 5998| ----- | ---- | ---- | 5999| TEMPORARY_READ_IMAGEVIDEO | 0 | 临时读权限类型。 | 6000| PERSISTENT_READ_IMAGEVIDEO | 1 | 永久读权限类型。 | 6001 6002## HideSensitiveType<sup>12+</sup> 6003 6004枚举,应用访问媒体资源时,对媒体资源进行信息脱敏的类型。 6005 6006**系统接口**:此接口为系统接口。 6007 6008**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 6009 6010| 名称 | 值 | 说明 | 6011| ----- | ---- | ---- | 6012| HIDE_LOCATION_AND_SHOOTING_PARAM | 0 | 脱敏地理位置和拍摄参数。 | 6013| HIDE_LOCATION_ONLY | 1 | 脱敏地理位置信息。 | 6014| HIDE_SHOOTING_PARAM_ONLY | 2 | 脱敏拍摄参数。 | 6015| NO_HIDE_SENSITIVE_TYPE | 3 | 不脱敏。 | 6016 6017## CloudEnhancementTaskStage<sup>13+</sup> 6018 6019枚举,应用查询云增强任务状态时,在[CloudEnhancementTaskState](#cloudenhancement13)接口中返回,表示云增强任务状态。 6020 6021**系统接口**:此接口为系统接口。 6022 6023**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 6024 6025| 名称 | 值 | 说明 | 6026| ----- | ---- | ---- | 6027| TASK_STAGE_EXCEPTION | -1 | 云增强任务异常。 | 6028| TASK_STAGE_PREPARING | 0 | 云增强任务准备中。 | 6029| TASK_STAGE_UPLOADING | 1 | 云增强任务上传中。 | 6030| TASK_STAGE_EXECUTING | 2 | 云增强任务执行中。 | 6031| TASK_STAGE_DOWNLOADING | 3 | 云增强任务下载中。 | 6032| TASK_STAGE_FAILED | 4 | 云增强任务失败。 | 6033| TASK_STAGE_COMPLETED | 5 | 云增强任务已完成。 | 6034 6035## CloudEnhancementState<sup>13+</sup> 6036 6037枚举,表示云增强状态。 6038 6039**系统接口**:此接口为系统接口。 6040 6041**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 6042 6043| 名称 | 值 | 说明 | 6044| ----- | ---- | ---- | 6045| UNAVAILABLE | 0 | 云增强不可用。 | 6046| AVAILABLE | 1 | 云增强可用。 | 6047| EXECUTING | 2 | 云增强执行中。 | 6048| COMPLETED | 3 | 云增强已完成。 | 6049 6050## CloudEnhancementTaskState<sup>13+</sup> 6051 6052云增强任务状态,应用调用调用云增强任务查询接口的返回类型,包含云增强任务状态及部分状态下的额外信息。 6053 6054**系统接口**:此接口为系统接口。 6055 6056**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 6057 6058| 名称 | 类型 | 必定提供 | 说明 | 6059| ---------------------- | ------------------- | ---- | ------------------------------------------------ | 6060|taskStage |[CloudEnhancementTaskStage](#cloudenhancementtaskstage13) |是 | 云增强任务状态。 | 6061|transferredFileSize |number |否 | 已传输的文件大小。当taskStage为CloudEnhancementTaskStage.TASK_STAGE_UPLOADING或者CloudEnhancementTaskStage.TASK_STAGE_DOWNLOADING时提供。 | 6062|totalFileSize |number |否 | 总文件大小。当taskStage为CloudEnhancementTaskStage.TASK_STAGE_UPLOADING或者CloudEnhancementTaskStage.TASK_STAGE_DOWNLOADING时提供。 | 6063|expectedDuration |number |否 | 排队时间。当taskStage为CloudEnhancementTaskStage.TASK_STAGE_EXECUTING时提供。 | 6064|statusCode |number |否 | 状态码。当taskStage为CloudEnhancementTaskStage.TASK_STAGE_FAILED时提供。 | 6065 6066## VideoEnhancementType<sup>13+</sup> 6067 6068枚举,分段式视频的二段式触发类型。 6069 6070**系统接口**:此接口为系统接口。 6071 6072**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 6073 6074| 名称 | 值 | 说明 | 6075| ----- | ---- | ---- | 6076| QUALITY_ENHANCEMENT_LOCAL | 0 | 在端侧增强处理。 | 6077| QUALITY_ENHANCEMENT_CLOUD | 1 | 在云侧增强处理。 | 6078| QUALITY_ENHANCEMENT_LOCAL_AND_CLOUD | 2 | 在端侧和云侧同时增强处理。 |