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 '@ohos.file.photoAccessHelper'; 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 | if parameter is invalid. | 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 | if parameter is invalid. | 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 | if parameter is invalid. | 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 | if parameter is invalid. | 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 | if parameter is invalid. | 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 | if parameter is invalid. | 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 '@ohos.base'; 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 | if parameter is invalid. | 404| 13900012 | Permission denied. | 405| 13900020 | Invalid argument. | 406| 14000011 | System inner fail. | 407 408**示例:** 409 410```ts 411import dataSharePredicates from '@ohos.data.dataSharePredicates'; 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 | if parameter is invalid. | 473| 13900012 | Permission denied. | 474| 13900020 | Invalid argument. | 475| 14000011 | System inner fail. | 476 477**示例:** 478 479```ts 480import dataSharePredicates from '@ohos.data.dataSharePredicates'; 481import { BusinessError } from '@ohos.base'; 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 denied. | 530| 202 | Called by non-system application. | 531| 401 | if parameter is invalid. | 532| 14000011 | System inner fail. | 533 534**示例:** 535 536```ts 537import dataSharePredicates from '@ohos.data.dataSharePredicates'; 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 denied. | 587| 202 | Called by non-system application. | 588| 401 | if parameter is invalid. | 589| 14000011 | System inner fail. | 590 591**示例:** 592 593```ts 594import dataSharePredicates from '@ohos.data.dataSharePredicates'; 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```ts 665import dataSharePredicates from '@ohos.data.dataSharePredicates'; 666import { BusinessError } from '@ohos.base'; 667 668// 获取系统预置的隐藏相册 669async function getSysHiddenAlbum() { 670 console.info('getSysHiddenAlbumDemo'); 671 phAccessHelper.getHiddenAlbums(photoAccessHelper.HiddenPhotosDisplayMode.ASSETS_MODE) 672 .then( async (fetchResult) => { 673 if (fetchResult === undefined) { 674 console.error('getSysHiddenAlbumPromise fetchResult is undefined'); 675 return; 676 } 677 let hiddenAlbum: photoAccessHelper.Album = await fetchResult.getFirstObject(); 678 console.info('getAlbumsPromise successfully, albumUri: ' + hiddenAlbum.albumUri); 679 fetchResult.close(); 680 }).catch((err: BusinessError) => { 681 console.error(`getSysHiddenAlbumPromise failed with err: ${err.code}, ${err.message}`); 682 }); 683} 684 685// 获取隐藏相册-相册视图,即系统中包含隐藏文件的相册(不包含系统预置的隐藏相册本身和回收站相册) 686async function getHiddenAlbumsView() { 687 console.info('getHiddenAlbumsViewDemo'); 688 phAccessHelper.getHiddenAlbums(photoAccessHelper.HiddenPhotosDisplayMode.ALBUMS_MODE).then( async (fetchResult) => { 689 if (fetchResult === undefined) { 690 console.error('getHiddenAlbumsViewPromise fetchResult is undefined'); 691 return; 692 } 693 let albums: Array<photoAccessHelper.Album> = await fetchResult.getAllObjects(); 694 console.info('getHiddenAlbumsViewPromise successfully, albums size: ' + albums.length); 695 696 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 697 let fetchOption: photoAccessHelper.FetchOptions = { 698 fetchColumns: [], 699 predicates: predicates 700 }; 701 for (let i = 0; i < albums.length; i++) { 702 // 获取相册中的隐藏文件 703 albums[i].getAssets(fetchOption).then((assetFetchResult) => { 704 console.info('album get hidden assets successfully, getCount: ' + assetFetchResult.getCount()); 705 }).catch((err: BusinessError) => { 706 console.error(`album get hidden assets failed with error: ${err.code}, ${err.message}`); 707 }); 708 } 709 fetchResult.close(); 710 }).catch((err: BusinessError) => { 711 console.error(`getHiddenAlbumsViewPromise failed with err: ${err.code}, ${err.message}`); 712 }); 713} 714``` 715 716### deleteAssets<sup>(deprecated)</sup> 717 718deleteAssets(uriList: Array<string>, callback: AsyncCallback<void>): void 719 720删除媒体文件,删除的文件进入到回收站,使用callback方式返回结果。 721 722> **说明:** 723> 724> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.deleteAssets](js-apis-photoAccessHelper.md#deleteassets11)替代。 725 726**系统接口**:此接口为系统接口。 727 728**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 729 730**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 731 732**参数:** 733 734| 参数名 | 类型 | 必填 | 说明 | 735| -------- | ------------------------- | ---- | ---------- | 736| uriList | Array<string> | 是 | 待删除的媒体文件uri数组。 | 737| callback | AsyncCallback<void> | 是 | callback返回void。 | 738 739**错误码:** 740 741接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 742 743| 错误码ID | 错误信息 | 744| -------- | ---------------------------------------- | 745| 202 | Called by non-system application. | 746| 401 | if parameter is invalid. | 747| 13900012 | Permission denied. | 748| 13900020 | Invalid argument. | 749| 14000002 | Invalid uri. | 750| 14000011 | System inner fail. | 751 752**示例:** 753 754```ts 755import dataSharePredicates from '@ohos.data.dataSharePredicates'; 756 757async function example() { 758 console.info('deleteAssetDemo'); 759 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 760 let fetchOptions: photoAccessHelper.FetchOptions = { 761 fetchColumns: [], 762 predicates: predicates 763 }; 764 try { 765 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 766 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 767 if (asset === undefined) { 768 console.error('asset not exist'); 769 return; 770 } 771 phAccessHelper.deleteAssets([asset.uri], (err) => { 772 if (err === undefined) { 773 console.info('deleteAssets successfully'); 774 } else { 775 console.error(`deleteAssets failed with error: ${err.code}, ${err.message}`); 776 } 777 }); 778 } catch (err) { 779 console.error(`fetch failed, error: ${err.code}, ${err.message}`); 780 } 781} 782``` 783 784### deleteAssets<sup>(deprecated)</sup> 785 786deleteAssets(uriList: Array<string>): Promise<void> 787 788删除媒体文件,删除的文件进入到回收站,使用Promise方式返回结果。 789 790> **说明:** 791> 792> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.deleteAssets](js-apis-photoAccessHelper.md#deleteassets11)替代。 793 794**系统接口**:此接口为系统接口。 795 796**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 797 798**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 799 800**参数:** 801 802| 参数名 | 类型 | 必填 | 说明 | 803| -------- | ------------------------- | ---- | ---------- | 804| uriList | Array<string> | 是 | 待删除的媒体文件uri数组。 | 805 806**返回值:** 807 808| 类型 | 说明 | 809| --------------------------------------- | ----------------- | 810| Promise<void>| Promise对象,返回void。 | 811 812**错误码:** 813 814接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 815 816| 错误码ID | 错误信息 | 817| -------- | ---------------------------------------- | 818| 202 | Called by non-system application. | 819| 401 | if parameter is invalid. | 820| 13900012 | Permission denied. | 821| 13900020 | Invalid argument. | 822| 14000002 | Invalid uri. | 823| 14000011 | System inner fail. | 824 825**示例:** 826 827```ts 828import dataSharePredicates from '@ohos.data.dataSharePredicates'; 829 830async function example() { 831 console.info('deleteDemo'); 832 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 833 let fetchOptions: photoAccessHelper.FetchOptions = { 834 fetchColumns: [], 835 predicates: predicates 836 }; 837 try { 838 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 839 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 840 if (asset === undefined) { 841 console.error('asset not exist'); 842 return; 843 } 844 await phAccessHelper.deleteAssets([asset.uri]); 845 console.info('deleteAssets successfully'); 846 } catch (err) { 847 console.error(`deleteAssets failed with error: ${err.code}, ${err.message}`); 848 } 849} 850``` 851 852### getPhotoIndex 853 854getPhotoIndex(photoUri: string, albumUri: string, options: FetchOptions, callback: AsyncCallback<number>): void 855 856获取相册中图片或视频的位置,使用callback方式返回结果。 857 858**系统接口**:此接口为系统接口。 859 860**需要权限**:ohos.permission.READ_IMAGEVIDEO 861 862**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 863 864**参数:** 865 866| 参数名 | 类型 | 必填 | 说明 | 867| -------- | ------------------------- | ---- | ---------- | 868| photoUri | string | 是 | 所查询的图库资源的uri。 | 869| albumUri | string | 是 | 相册uri,可以为空字符串,为空字符串时默认查询全部图库资源。 | 870| options | [FetchOptions](js-apis-photoAccessHelper.md#fetchoptions) | 是 | 检索选项,predicates中必须设置一种检索排序方式,不设置或多设置均会导致接口调用异常。 | 871| callback | AsyncCallback<number>| 是 | callback返回相册中资源的索引。 | 872 873**错误码:** 874 875接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 876 877| 错误码ID | 错误信息 | 878| -------- | ---------------------------------------- | 879| 202 | Called by non-system application. | 880| 401 | if parameter is invalid. | 881| 13900012 | Permission denied. | 882| 13900020 | Invalid argument. | 883| 14000011 | System inner fail. | 884 885**示例:** 886 887```ts 888import dataSharePredicates from '@ohos.data.dataSharePredicates'; 889 890async function example() { 891 try { 892 console.info('getPhotoIndexDemo'); 893 let predicatesForGetAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 894 let fetchOp: photoAccessHelper.FetchOptions = { 895 fetchColumns: [], 896 predicates: predicatesForGetAsset 897 }; 898 // Obtain the uri of the album 899 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.FAVORITE, fetchOp); 900 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 901 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 902 predicates.orderByAsc(photoAccessHelper.PhotoKeys.DATE_MODIFIED); 903 let fetchOptions: photoAccessHelper.FetchOptions = { 904 fetchColumns: [photoAccessHelper.PhotoKeys.DATE_MODIFIED], 905 predicates: predicates 906 }; 907 let photoFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions); 908 let expectIndex = 1; 909 // Obtain the uri of the second file 910 let photoAsset: photoAccessHelper.PhotoAsset = await photoFetchResult.getObjectByPosition(expectIndex); 911 912 phAccessHelper.getPhotoIndex(photoAsset.uri, album.albumUri, fetchOptions, (err, index) => { 913 if (err === undefined) { 914 console.info(`getPhotoIndex successfully and index is : ${index}`); 915 } else { 916 console.error(`getPhotoIndex failed; error: ${err.code}, ${err.message}`); 917 } 918 }); 919 } catch (error) { 920 console.error(`getPhotoIndex failed; error: ${error.code}, ${error.message}`); 921 } 922} 923``` 924 925### getPhotoIndex 926 927getPhotoIndex(photoUri: string, albumUri: string, options: FetchOptions): Promise<number> 928 929获取相册中图片或视频的位置,使用Promise方式返回结果。 930 931**系统接口**:此接口为系统接口。 932 933**需要权限**:ohos.permission.READ_IMAGEVIDEO 934 935**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 936 937**参数:** 938 939| 参数名 | 类型 | 必填 | 说明 | 940| -------- | ------------------------- | ---- | ---------- | 941| photoUri | string | 是 | 所查询的图库资源的uri。 | 942| albumUri | string | 是 | 相册uri,可以为空字符串,为空字符串时默认查询全部图库资源。 | 943| options | [FetchOptions](js-apis-photoAccessHelper.md#fetchoptions) | 是 | 检索选项,predicates中必须设置一种检索排序方式,不设置或多设置均会导致接口调用异常。 | 944 945**返回值:** 946 947| 类型 | 说明 | 948| --------------------------------------- | ----------------- | 949| Promise<number>| 返回相册中资源的索引。 | 950 951**错误码:** 952 953接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 954 955| 错误码ID | 错误信息 | 956| -------- | ---------------------------------------- | 957| 202 | Called by non-system application. | 958| 401 | if parameter is invalid. | 959| 13900012 | Permission denied. | 960| 13900020 | Invalid argument. | 961| 14000011 | System inner fail. | 962 963**示例:** 964 965```ts 966import dataSharePredicates from '@ohos.data.dataSharePredicates'; 967import { BusinessError } from '@ohos.base'; 968 969async function example() { 970 try { 971 console.info('getPhotoIndexDemo'); 972 let predicatesForGetAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 973 let fetchOp: photoAccessHelper.FetchOptions = { 974 fetchColumns: [], 975 predicates: predicatesForGetAsset 976 }; 977 // Obtain the uri of the album 978 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.FAVORITE, fetchOp); 979 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 980 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 981 predicates.orderByAsc(photoAccessHelper.PhotoKeys.DATE_MODIFIED); 982 let fetchOptions: photoAccessHelper.FetchOptions = { 983 fetchColumns: [photoAccessHelper.PhotoKeys.DATE_MODIFIED], 984 predicates: predicates 985 }; 986 let photoFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions); 987 let expectIndex = 1; 988 // Obtain the uri of the second file 989 let photoAsset: photoAccessHelper.PhotoAsset = await photoFetchResult.getObjectByPosition(expectIndex); 990 phAccessHelper.getPhotoIndex(photoAsset.uri, album.albumUri, fetchOptions).then((index) => { 991 console.info(`getPhotoIndex successfully and index is : ${index}`); 992 }).catch((err: BusinessError) => { 993 console.error(`getPhotoIndex failed; error: ${err.code}, ${err.message}`); 994 }); 995 } catch (error) { 996 console.error(`getPhotoIndex failed; error: ${error.code}, ${error.message}`); 997 } 998} 999``` 1000 1001### saveFormInfo<sup>11+</sup> 1002 1003saveFormInfo(info:FormInfo, callback: AsyncCallback<void>):void 1004 1005将图库卡片相关信息保存到数据库中,使用callback方式返回结果。 1006 1007**系统接口**:此接口为系统接口。 1008 1009**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1010 1011**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1012 1013**参数:** 1014 1015| 参数名 | 类型 | 必填 | 说明 | 1016| -------- | ------------------------ | ---- | ------------------------- | 1017| info | [FormInfo](#forminfo11) | 是 | 图库卡片信息,包括图库卡片的id和卡片绑定的图片的uri。 | 1018| callback | AsyncCallback<void> | 是 | callback返回void。 | 1019 1020**错误码:** 1021 1022接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1023 1024| 错误码ID | 错误信息 | 1025| -------- | ---------------------------------------- | 1026| 201 | Permission verification failed, usually the result returned by VerifyAccessToken. | 1027| 202 | Permission verification failed, application which is not a system application uses system API. | 1028| 401 | if the argument is invalid. | 1029| 14000011 | System inner fail. | 1030 1031 1032**示例:** 1033 1034```ts 1035import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1036import { BusinessError } from '@ohos.base'; 1037 1038async function example() { 1039 console.info('saveFormInfoDemo'); 1040 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1041 let fetchOptions: photoAccessHelper.FetchOptions = { 1042 fetchColumns: [], 1043 predicates: predicates 1044 }; 1045 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 1046 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 1047 1048 let info: photoAccessHelper.FormInfo = { 1049 //formId是一个由纯数字组成的字符串,uri为图库中存在的图片的uri信息,图库中无图片创建卡片时uri需为空字符串 1050 formId : "20230116123", 1051 uri: photoAsset.uri, 1052 } 1053 1054 phAccessHelper.saveFormInfo(info, async (err: BusinessError) => { 1055 if (err == undefined) { 1056 console.info('saveFormInfo success'); 1057 } else { 1058 console.error(`saveFormInfo fail with error: ${err.code}, ${err.message}`); 1059 } 1060 }); 1061} 1062``` 1063 1064### saveFormInfo<sup>11+</sup> 1065 1066saveFormInfo(info:FormInfo):Promise<void> 1067 1068将图库卡片相关信息保存到数据库中,使用Promise方式返回结果。 1069 1070**系统接口**:此接口为系统接口。 1071 1072**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1073 1074**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1075 1076**参数:** 1077 1078| 参数名 | 类型 | 必填 | 说明 | 1079| -------- | ------------------------ | ---- | ------------------------- | 1080| info | [FormInfo](#forminfo11) | 是 | 图库卡片信息,包括图库卡片的id和卡片绑定的图片的uri。 | 1081 1082**返回值:** 1083 1084| 类型 | 说明 | 1085| --------------------------------------- | ----------------- | 1086| Promise<void>| Promise对象,返回void。 | 1087 1088**错误码:** 1089 1090接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1091 1092| 错误码ID | 错误信息 | 1093| -------- | ---------------------------------------- | 1094| 201 | Permission verification failed, usually the result returned by VerifyAccessToken. | 1095| 202 | Permission verification failed, application which is not a system application uses system API. | 1096| 401 | if the argument is invalid. | 1097| 14000011 | System inner fail. | 1098 1099**示例:** 1100 1101```ts 1102import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1103import { BusinessError } from '@ohos.base'; 1104 1105async function example() { 1106 console.info('saveFormInfoDemo'); 1107 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1108 let fetchOptions: photoAccessHelper.FetchOptions = { 1109 fetchColumns: [], 1110 predicates: predicates 1111 }; 1112 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 1113 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 1114 1115 let info: photoAccessHelper.FormInfo = { 1116 //formId是一个由纯数字组成的字符串,uri为图库中存在的图片的uri信息,图库中无图片创建卡片时uri需为空字符串 1117 formId: "20230116123", 1118 uri: photoAsset.uri, 1119 } 1120 1121 phAccessHelper.saveFormInfo(info).then(() => { 1122 console.info('saveFormInfo successfully'); 1123 }).catch((err: BusinessError) => { 1124 console.error(`saveFormInfo failed with error: ${err.code}, ${err.message}`); 1125 }); 1126} 1127``` 1128 1129### removeFormInfo<sup>11+</sup> 1130 1131removeFormInfo(info:FormInfo, callback: AsyncCallback<void>):void 1132 1133从数据库中删除图库卡片信息,使用callback方式返回结果。 1134 1135**系统接口**:此接口为系统接口。 1136 1137**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1138 1139**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1140 1141**参数:** 1142 1143| 参数名 | 类型 | 必填 | 说明 | 1144| -------- | ------------------------ | ---- | ------------------------- | 1145| info | [FormInfo](#forminfo11) | 是 | 图库卡片信息,包括图库卡片的id和卡片绑定的图片的uri。 | 1146| callback | AsyncCallback<void> | 是 | callback返回void。 | 1147 1148**错误码:** 1149 1150接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1151 1152| 错误码ID | 错误信息 | 1153| -------- | ---------------------------------------- | 1154| 201 | Permission verification failed, usually the result returned by VerifyAccessToken. | 1155| 202 | Permission verification failed, application which is not a system application uses system API. | 1156| 401 | if the argument is invalid. | 1157| 14000011 | System inner fail. | 1158 1159**示例:** 1160 1161```ts 1162import { BusinessError } from '@ohos.base'; 1163 1164async function example() { 1165 console.info('removeFormInfoDemo'); 1166 let info: photoAccessHelper.FormInfo = { 1167 //formId是一个由纯数字组成的字符串,移除卡片的时候uri填空即可 1168 formId: "20230116123", 1169 uri: "", 1170 } 1171 1172 phAccessHelper.removeFormInfo(info, async (err: BusinessError) => { 1173 if (err == undefined) { 1174 console.info('removeFormInfo success'); 1175 } else { 1176 console.error(`removeFormInfo fail with error: ${err.code}, ${err.message}`); 1177 } 1178 }); 1179} 1180``` 1181 1182### removeFormInfo<sup>11+</sup> 1183 1184removeFormInfo(info:FormInfo):Promise<void> 1185 1186从数据库中删除图库卡片信息,使用Promise方式返回结果。 1187 1188**系统接口**:此接口为系统接口。 1189 1190**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1191 1192**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1193 1194**参数:** 1195 1196| 参数名 | 类型 | 必填 | 说明 | 1197| -------- | ------------------------ | ---- | ------------------------- | 1198| info | [FormInfo](#forminfo11) | 是 | 图库卡片信息,包括图库卡片的id和卡片绑定的图片的uri。 | 1199 1200**返回值:** 1201 1202| 类型 | 说明 | 1203| --------------------------------------- | ----------------- | 1204| Promise<void>| Promise对象,返回void。 | 1205 1206**错误码:** 1207 1208接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1209 1210| 错误码ID | 错误信息 | 1211| -------- | ---------------------------------------- | 1212| 201 | Permission verification failed, usually the result returned by VerifyAccessToken. | 1213| 202 | Permission verification failed, application which is not a system application uses system API. | 1214| 401 | if the argument is invalid. | 1215| 14000011 | System inner fail. | 1216 1217**示例:** 1218 1219```ts 1220import { BusinessError } from '@ohos.base'; 1221 1222async function example() { 1223 console.info('removeFormInfoDemo'); 1224 let info: photoAccessHelper.FormInfo = { 1225 //formId是一个由纯数字组成的字符串,移除卡片的时候uri填空即可 1226 formId: "20230116123", 1227 uri: "", 1228 } 1229 1230 phAccessHelper.removeFormInfo(info).then(() => { 1231 console.info('removeFormInfo successfully'); 1232 }).catch((err: BusinessError) => { 1233 console.error(`removeFormInfo failed with error: ${err.code}, ${err.message}`); 1234 }); 1235} 1236``` 1237 1238## PhotoAsset 1239 1240提供封装文件属性的方法。 1241 1242### open<sup>(deprecated)</sup> 1243 1244open(mode: string, callback: AsyncCallback<number>): void 1245 1246打开当前文件,使用callback方式返回异步结果。 1247 1248> **说明:** 1249> 1250> 从API version 10开始支持,从API version 11开始废弃。出于安全考量,不再提供获取正式媒体文件句柄的接口。 1251 1252**注意**:当前此(写)操作是互斥的操作,返回的文件描述符在使用完毕后需要调用close进行释放。 1253 1254**系统接口**:此接口为系统接口。 1255 1256**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.WRITE_IMAGEVIDEO 1257 1258**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1259 1260**参数:** 1261 1262| 参数名 | 类型 | 必填 | 说明 | 1263| -------- | --------------------------- | ---- | ----------------------------------- | 1264| mode | string | 是 | 打开文件方式,分别为:'r'(只读), 'w'(只写), 'rw'(读写)。 | 1265| callback | AsyncCallback<number> | 是 | callback返回文件描述符。 | 1266 1267**错误码:** 1268 1269接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1270 1271| 错误码ID | 错误信息 | 1272| -------- | ---------------------------------------- | 1273| 202 | Called by non-system application. | 1274| 401 | if parameter is invalid. | 1275| 13900012 | Permission denied. | 1276| 13900020 | Invalid argument. | 1277| 14000011 | System inner fail. | 1278 1279**示例:** 1280 1281```ts 1282async function example() { 1283 console.info('Open demo'); 1284 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 1285 let photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName); 1286 photoAsset.open('rw', (err, fd) => { 1287 if (fd !== undefined) { 1288 console.info('File fd' + fd); 1289 photoAsset.close(fd); 1290 } else { 1291 console.error(`Open file err: ${err.code}, ${err.message}`); 1292 } 1293 }); 1294} 1295``` 1296 1297### open<sup>(deprecated)</sup> 1298 1299open(mode: string): Promise<number> 1300 1301打开当前文件,使用promise方式返回异步结果。 1302 1303> **说明:** 1304> 1305> 从API version 10开始支持,从API version 11开始废弃。出于安全考量,不再提供获取正式媒体文件句柄的接口。 1306 1307**注意**:当前此(写)操作是互斥的操作,返回的文件描述符在使用完毕后需要调用close进行释放。 1308 1309**系统接口**:此接口为系统接口。 1310 1311**需要权限**:ohos.permission.READ_IMAGEVIDEO 或 ohos.permission.WRITE_IMAGEVIDEO 1312 1313**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1314 1315**参数:** 1316 1317| 参数名 | 类型 | 必填 | 说明 | 1318| ---- | ------ | ---- | ----------------------------------- | 1319| mode | string | 是 | 打开文件方式,分别为:'r'(只读), 'w'(只写), 'rw'(读写)。 | 1320 1321**返回值:** 1322 1323| 类型 | 说明 | 1324| --------------------- | ------------- | 1325| Promise<number> | Promise对象,返回文件描述符。 | 1326 1327**错误码:** 1328 1329接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1330 1331| 错误码ID | 错误信息 | 1332| -------- | ---------------------------------------- | 1333| 202 | Called by non-system application. | 1334| 401 | if parameter is invalid. | 1335| 13900012 | Permission denied. | 1336| 13900020 | Invalid argument. | 1337| 14000011 | System inner fail. | 1338 1339**示例:** 1340 1341```ts 1342async function example() { 1343 console.info('Open demo'); 1344 try { 1345 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 1346 let photoAsset: photoAccessHelper.PhotoAsset = await phAccessHelper.createAsset(testFileName); 1347 let fd: number = await photoAsset.open('rw'); 1348 if (fd !== undefined) { 1349 console.info('File fd' + fd); 1350 photoAsset.close(fd); 1351 } else { 1352 console.error('Open file fail'); 1353 } 1354 } catch (err) { 1355 console.error(`Open demo err: ${err.code}, ${err.message}`); 1356 } 1357} 1358``` 1359 1360### setFavorite<sup>(deprecated)</sup> 1361 1362setFavorite(favoriteState: boolean, callback: AsyncCallback<void>): void 1363 1364将文件设置为收藏文件,使用callback方式返回异步结果。 1365 1366> **说明:** 1367> 1368> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setFavorite](#setfavorite11)替代。 1369 1370**系统接口**:此接口为系统接口。 1371 1372**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1373 1374**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1375 1376**参数:** 1377 1378| 参数名 | 类型 | 必填 | 说明 | 1379| ---------- | ------------------------- | ---- | ---------------------------------- | 1380| favoriteState | boolean | 是 | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏。 | 1381| callback | AsyncCallback<void> | 是 | callback返回void。 | 1382 1383**错误码:** 1384 1385接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1386 1387| 错误码ID | 错误信息 | 1388| -------- | ---------------------------------------- | 1389| 202 | Called by non-system application. | 1390| 401 | if parameter is invalid. | 1391| 13900012 | Permission denied. | 1392| 13900020 | Invalid argument. | 1393| 14000011 | System inner fail. | 1394 1395**示例:** 1396 1397```ts 1398import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1399 1400async function example() { 1401 console.info('setFavoriteDemo'); 1402 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1403 let fetchOption: photoAccessHelper.FetchOptions = { 1404 fetchColumns: [], 1405 predicates: predicates 1406 }; 1407 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 1408 let asset = await fetchResult.getFirstObject(); 1409 asset.setFavorite(true, (err) => { 1410 if (err === undefined) { 1411 console.info('favorite successfully'); 1412 } else { 1413 console.error(`favorite failed with error: ${err.code}, ${err.message}`); 1414 } 1415 }); 1416} 1417``` 1418 1419### setFavorite<sup>(deprecated)</sup> 1420 1421setFavorite(favoriteState: boolean): Promise<void> 1422 1423将文件设置为收藏文件,使用promise方式返回异步结果。 1424 1425> **说明:** 1426> 1427> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setFavorite](#setfavorite11)替代。 1428 1429**系统接口**:此接口为系统接口。 1430 1431**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1432 1433**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1434 1435**参数:** 1436 1437| 参数名 | 类型 | 必填 | 说明 | 1438| ---------- | ------- | ---- | ---------------------------------- | 1439| favoriteState | boolean | 是 | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏。 | 1440 1441**返回值:** 1442 1443| 类型 | 说明 | 1444| ------------------- | ---------- | 1445| Promise<void> | Promise对象,返回void。 | 1446 1447**错误码:** 1448 1449接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1450 1451| 错误码ID | 错误信息 | 1452| -------- | ---------------------------------------- | 1453| 202 | Called by non-system application. | 1454| 401 | if parameter is invalid. | 1455| 13900012 | Permission denied. | 1456| 13900020 | Invalid argument. | 1457| 14000011 | System inner fail. | 1458 1459**示例:** 1460 1461```ts 1462import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1463import { BusinessError } from '@ohos.base'; 1464 1465async function example() { 1466 console.info('setFavoriteDemo'); 1467 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1468 let fetchOption: photoAccessHelper.FetchOptions = { 1469 fetchColumns: [], 1470 predicates: predicates 1471 }; 1472 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 1473 let asset = await fetchResult.getFirstObject(); 1474 asset.setFavorite(true).then(() => { 1475 console.info('setFavorite successfully'); 1476 }).catch((err: BusinessError) => { 1477 console.error(`setFavorite failed with error: ${err.code}, ${err.message}`); 1478 }); 1479} 1480``` 1481 1482### setHidden<sup>(deprecated)</sup> 1483 1484setHidden(hiddenState: boolean, callback: AsyncCallback<void>): void 1485 1486将文件设置为隐私文件,使用callback方式返回异步结果。 1487 1488隐私文件存在隐私相册中,用户通过隐私相册去获取隐私文件后可以通过设置hiddenState为false来从隐私相册中移除。 1489 1490> **说明:** 1491> 1492> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setHidden](#sethidden11)替代。 1493 1494**系统接口**:此接口为系统接口。 1495 1496**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1497 1498**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1499 1500**参数:** 1501 1502| 参数名 | 类型 | 必填 | 说明 | 1503| ---------- | ------------------------- | ---- | ---------------------------------- | 1504| hiddenState | boolean | 是 | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 | 1505| callback | AsyncCallback<void> | 是 | callback返回void。 | 1506 1507**错误码:** 1508 1509接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1510 1511| 错误码ID | 错误信息 | 1512| -------- | ---------------------------------------- | 1513| 202 | Called by non-system application. | 1514| 401 | if parameter is invalid. | 1515| 13900012 | Permission denied. | 1516| 13900020 | Invalid argument. | 1517| 14000011 | System inner fail. | 1518 1519**示例:** 1520 1521```ts 1522import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1523 1524async function example() { 1525 console.info('setHiddenDemo'); 1526 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1527 let fetchOption: photoAccessHelper.FetchOptions = { 1528 fetchColumns: [], 1529 predicates: predicates 1530 }; 1531 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 1532 let asset = await fetchResult.getFirstObject(); 1533 asset.setHidden(true, (err) => { 1534 if (err === undefined) { 1535 console.info('setHidden successfully'); 1536 } else { 1537 console.error(`setHidden failed with error: ${err.code}, ${err.message}`); 1538 } 1539 }); 1540} 1541``` 1542 1543### setHidden<sup>(deprecated)</sup> 1544 1545setHidden(hiddenState: boolean): Promise<void> 1546 1547将文件设置为隐私文件,使用promise方式返回异步结果。 1548 1549隐私文件存在隐私相册中,用户通过隐私相册去获取隐私文件后可以通过设置hiddenState为false来从隐私相册中移除。 1550 1551> **说明:** 1552> 1553> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setHidden](#sethidden11)替代。 1554 1555**系统接口**:此接口为系统接口。 1556 1557**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1558 1559**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1560 1561**参数:** 1562 1563| 参数名 | 类型 | 必填 | 说明 | 1564| ---------- | ------- | ---- | ---------------------------------- | 1565| hiddenState | boolean | 是 | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 | 1566 1567**返回值:** 1568 1569| 类型 | 说明 | 1570| ------------------- | ---------- | 1571| Promise<void> | Promise对象,返回void。 | 1572 1573**错误码:** 1574 1575接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1576 1577| 错误码ID | 错误信息 | 1578| -------- | ---------------------------------------- | 1579| 202 | Called by non-system application. | 1580| 401 | if parameter is invalid. | 1581| 13900012 | Permission denied. | 1582| 13900020 | Invalid argument. | 1583| 14000011 | System inner fail. | 1584 1585**示例:** 1586 1587```ts 1588import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1589import { BusinessError } from '@ohos.base'; 1590 1591async function example() { 1592 // 示例代码为将文件从隐藏相册中恢复,需要先在隐藏相册预置资源 1593 console.info('setHiddenDemo'); 1594 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1595 let fetchOption: photoAccessHelper.FetchOptions = { 1596 fetchColumns: [], 1597 predicates: predicates 1598 }; 1599 let albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.HIDDEN); 1600 let album = await albumList.getFirstObject(); 1601 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption); 1602 let asset = await fetchResult.getFirstObject(); 1603 asset.setHidden(false).then(() => { 1604 console.info('setHidden successfully'); 1605 }).catch((err: BusinessError) => { 1606 console.error(`setHidden failed with error: ${err.code}, ${err.message}`); 1607 }); 1608} 1609``` 1610 1611### getExif 1612 1613getExif(): Promise<string> 1614 1615返回jpg格式图片Exif标签组成的json格式的字符串,该方法使用Promise方式返回结果。 1616 1617此接口中获取的Exif标签信息是由[image](../apis-image-kit/js-apis-image.md)模块提供。Exif标签详细信息请参考[image.PropertyKey](../apis-image-kit/js-apis-image.md#propertykey7)。 1618 1619**注意**:此接口返回的是Exif标签组成的json格式的字符串,完整Exif信息由all_exif与[PhotoKeys.USER_COMMENT](#photokeys)组成,fetchColumns需要传入这两个字段。 1620 1621**系统接口**:此接口为系统接口。 1622 1623**需要权限**:ohos.permission.READ_IMAGEVIDEO 1624 1625**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1626 1627**返回值:** 1628 1629| 类型 | 说明 | 1630| --------------------------------------- | ----------------- | 1631| Promise<string> | 返回Exif标签组成的json格式的字符串。 | 1632 1633**错误码:** 1634 1635接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1636 1637| 错误码ID | 错误信息 | 1638| -------- | ---------------------------------------- | 1639| 202 | Called by non-system application. | 1640| 401 | if parameter is invalid. | 1641| 13900012 | Permission denied. | 1642| 13900020 | Invalid argument. | 1643| 14000011 | System inner fail. | 1644 1645**示例:** 1646 1647```ts 1648import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1649 1650async function example() { 1651 try { 1652 console.info('getExifDemo'); 1653 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1654 let fetchOptions: photoAccessHelper.FetchOptions = { 1655 fetchColumns: [ 'all_exif', photoAccessHelper.PhotoKeys.USER_COMMENT], 1656 predicates: predicates 1657 }; 1658 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 1659 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 1660 let exifMessage = await photoAsset.getExif(); 1661 let userCommentKey = 'UserComment'; 1662 let userComment = JSON.stringify(JSON.parse(exifMessage), [userCommentKey]); 1663 console.info('getExifDemo userComment: ' + JSON.stringify(userComment)); 1664 fetchResult.close(); 1665 } catch (err) { 1666 console.error(`getExifDemoCallback failed with error: ${err.code}, ${err.message}`); 1667 } 1668} 1669``` 1670 1671### getExif 1672 1673getExif(callback: AsyncCallback<string>): void 1674 1675返回jpg格式图片Exif标签组成的json格式的字符串,使用callback方式返回异步结果。 1676 1677此接口中获取的Exif标签信息是由[image](../apis-image-kit/js-apis-image.md)模块提供。Exif标签详细信息请参考[image.PropertyKey](../apis-image-kit/js-apis-image.md#propertykey7)。 1678 1679**注意**:此接口返回的是Exif标签组成的json格式的字符串,完整Exif信息由all_exif与[PhotoKeys.USER_COMMENT](#photokeys)组成,fetchColumns需要传入这两个字段。 1680 1681**系统接口**:此接口为系统接口。 1682 1683**需要权限**:ohos.permission.READ_IMAGEVIDEO 1684 1685**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1686 1687**参数:** 1688 1689| 参数名 | 类型 | 必填 | 说明 | 1690| -------- | ------------------------- | ---- | ---------- | 1691| callback | AsyncCallback<string> | 是 | 返回Exif字段组成的json格式的字符串。 | 1692 1693**错误码:** 1694 1695接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1696 1697| 错误码ID | 错误信息 | 1698| -------- | ---------------------------------------- | 1699| 202 | Called by non-system application. | 1700| 401 | if parameter is invalid. | 1701| 13900012 | Permission denied. | 1702| 13900020 | Invalid argument. | 1703| 14000011 | System inner fail. | 1704 1705**示例:** 1706 1707```ts 1708import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1709 1710async function example() { 1711 try { 1712 console.info('getExifDemo'); 1713 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1714 predicates.isNotNull('all_exif') 1715 let fetchOptions: photoAccessHelper.FetchOptions = { 1716 fetchColumns: ['all_exif', photoAccessHelper.PhotoKeys.USER_COMMENT], 1717 predicates: predicates 1718 }; 1719 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 1720 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 1721 console.info('getExifDemo photoAsset displayName: ' + JSON.stringify(photoAsset.displayName)); 1722 let userCommentKey = 'UserComment'; 1723 photoAsset.getExif((err, exifMessage) => { 1724 if (exifMessage !== undefined) { 1725 let userComment = JSON.stringify(JSON.parse(exifMessage), [userCommentKey]); 1726 console.info('getExifDemo userComment: ' + JSON.stringify(userComment)); 1727 } else { 1728 console.error(`getExif failed, error: ${err.code}, ${err.message}`); 1729 } 1730 }); 1731 fetchResult.close(); 1732 } catch (err) { 1733 console.error(`getExifDemoCallback failed with error: ${err.code}, ${err.message}`); 1734 } 1735} 1736``` 1737 1738### setUserComment<sup>(deprecated)</sup> 1739 1740setUserComment(userComment: string): Promise<void> 1741 1742修改图片或者视频的备注信息,该方法使用Promise来返回结果。 1743 1744> **说明:** 1745> 1746> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setUserComment](#setusercomment11)替代。 1747 1748**注意**:此接口只可修改图片或者视频的备注信息。 1749 1750**系统接口**:此接口为系统接口。 1751 1752**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1753 1754**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1755 1756**参数:** 1757 1758| 参数名 | 类型 | 必填 | 说明 | 1759| -------- | ------------------------- | ---- | ---------- | 1760| userComment | string | 是 | 待修改的图片或视频的备注信息,备注信息最长为420字符。 | 1761 1762**返回值:** 1763 1764| 类型 | 说明 | 1765| --------------------------------------- | ----------------- | 1766|Promise<void> | Promise对象,返回void。 | 1767 1768**错误码:** 1769 1770接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1771 1772| 错误码ID | 错误信息 | 1773| -------- | ---------------------------------------- | 1774| 202 | Called by non-system application. | 1775| 401 | if parameter is invalid. | 1776| 13900012 | Permission denied. | 1777| 13900020 | Invalid argument. | 1778| 14000011 | System inner fail. | 1779 1780**示例:** 1781 1782```ts 1783import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1784 1785async function example() { 1786 try { 1787 console.info('setUserCommentDemo') 1788 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1789 let fetchOptions: photoAccessHelper.FetchOptions = { 1790 fetchColumns: [], 1791 predicates: predicates 1792 }; 1793 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 1794 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 1795 let userComment = 'test_set_user_comment'; 1796 await photoAsset.setUserComment(userComment); 1797 } catch (err) { 1798 console.error(`setUserCommentDemoPromise failed with error: ${err.code}, ${err.message}`); 1799 } 1800} 1801``` 1802 1803### setUserComment<sup>(deprecated)</sup> 1804 1805setUserComment(userComment: string, callback: AsyncCallback<void>): void 1806 1807修改图片或者视频的备注信息,该方法使用callback形式来返回结果。 1808 1809> **说明:** 1810> 1811> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAssetChangeRequest.setUserComment](#setusercomment11)替代。 1812 1813**注意**:此接口只可修改图片或者视频的备注信息。 1814 1815**系统接口**:此接口为系统接口。 1816 1817**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1818 1819**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1820 1821**参数:** 1822 1823| 参数名 | 类型 | 必填 | 说明 | 1824| -------- | ------------------------- | ---- | ---------- | 1825| userComment | string | 是 | 待修改的图片或视频的备注信息,备注信息最长为420字符。 | 1826| callback | AsyncCallback<void> | 是 | callback返回void。 | 1827 1828**错误码:** 1829 1830接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1831 1832| 错误码ID | 错误信息 | 1833| -------- | ---------------------------------------- | 1834| 202 | Called by non-system application. | 1835| 401 | if parameter is invalid. | 1836| 13900012 | Permission denied. | 1837| 13900020 | Invalid argument. | 1838| 14000011 | System inner fail. | 1839 1840**示例:** 1841 1842```ts 1843import dataSharePredicates from '@ohos.data.dataSharePredicates'; 1844 1845async function example() { 1846 try { 1847 console.info('setUserCommentDemo') 1848 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 1849 let fetchOptions: photoAccessHelper.FetchOptions = { 1850 fetchColumns: [], 1851 predicates: predicates 1852 }; 1853 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 1854 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 1855 let userComment = 'test_set_user_comment'; 1856 photoAsset.setUserComment(userComment, (err) => { 1857 if (err === undefined) { 1858 console.info('setUserComment successfully'); 1859 } else { 1860 console.error(`setUserComment failed with error: ${err.code}, ${err.message}`); 1861 } 1862 }); 1863 } catch (err) { 1864 console.error(`setUserCommentDemoCallback failed with error: ${err.code}, ${err.message}`); 1865 } 1866} 1867``` 1868 1869### setPending<sup>11+</sup> 1870 1871setPending(pendingState: boolean, callback: AsyncCallback<void>): void 1872 1873为图片或视频资源设置pending状态,该方法使用callback形式来返回结果。 1874 1875将文件通过`setPending(true)`设置为pending状态后,只能通过`setPending(false)`解除pending状态。可以通过`photoAsset.get(photoAccessHelper.PhotoKeys.PENDING)`的方式获取是否为pending状态,pending状态下返回true,否则返回false。 1876 1877**注意**:setPending只能在文件的创建期使用,在文件的首次创建流程的close之后,无法通过setPending(true)将文件设置为pending状态。 1878 1879**系统接口**:此接口为系统接口。 1880 1881**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1882 1883**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1884 1885**参数:** 1886 1887| 参数名 | 类型 | 必填 | 说明 | 1888| ---------- | ------- | ---- | ---------------------------------- | 1889| pendingState | boolean | 是 | 设置的pending状态,true为设置pending状态,false为解除pending状态 | 1890| callback | AsyncCallback<void> | 是 | Callback对象,返回void | 1891 1892**错误码:** 1893 1894接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1895 1896| 错误码ID | 错误信息 | 1897| -------- | ---------------------------------------- | 1898| 201 | Permission denied. | 1899| 202 | Called by non-system application. | 1900| 401 | if parameter is invalid. | 1901| 14000011 | System inner fail. | 1902 1903**示例:** 1904 1905```ts 1906async function example() { 1907 try { 1908 console.info('setPendingCallbackDemo'); 1909 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 1910 let photoAsset = await phAccessHelper.createAsset(testFileName); 1911 let fd = await photoAsset.open('rw'); 1912 photoAsset.setPending(true, async (err) => { 1913 if (err !== undefined) { 1914 console.error(`setPending(true) failed with error: ${err.code}, ${err.message}`); 1915 return; 1916 } 1917 // write photo buffer in fd 1918 photoAsset.setPending(false, async (err) => { 1919 if (err !== undefined) { 1920 console.error(`setPending(false) failed with error: ${err.code}, ${err.message}`); 1921 return; 1922 } 1923 await photoAsset.close(fd); 1924 }); 1925 }); 1926 } catch (err) { 1927 console.error(`setPendingCallbackDemo failed with error: ${err.code}, ${err.message}`); 1928 } 1929} 1930``` 1931 1932### setPending<sup>11+</sup> 1933 1934setPending(pendingState: boolean): Promise<void> 1935 1936为图片或视频资源设置pending状态,该方法使用promise形式来返回结果。 1937 1938将文件通过`setPending(true)`设置为pending状态后,只能通过`setPending(false)`解除pending状态。可以通过`photoAsset.get(photoAccessHelper.PhotoKeys.PENDING)`的方式获取是否为pending状态,pending状态下返回true,否则返回false。 1939 1940**注意**:setPending只能在文件的创建期使用,在文件的首次创建流程的close之后,无法通过setPending(true)将文件设置为pending状态。 1941 1942**系统接口**:此接口为系统接口。 1943 1944**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 1945 1946**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 1947 1948**参数:** 1949 1950| 参数名 | 类型 | 必填 | 说明 | 1951| ---------- | ------- | ---- | ---------------------------------- | 1952| pendingState | boolean | 是 | 设置的pending状态,true为设置pending状态,false为解除pending状态。 | 1953 1954**返回值:** 1955 1956| 类型 | 说明 | 1957| --------------------------------------- | ----------------- | 1958|Promise<boolean> | Promise对象,返回void。 | 1959 1960**错误码:** 1961 1962接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 1963 1964| 错误码ID | 错误信息 | 1965| -------- | ---------------------------------------- | 1966| 201 | Permission denied. | 1967| 202 | Called by non-system application. | 1968| 401 | if parameter is invalid. | 1969| 14000011 | System inner fail. | 1970 1971**示例:** 1972 1973```ts 1974async function example() { 1975 try { 1976 console.info('setPendingPromiseDemo'); 1977 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 1978 let photoAsset = await phAccessHelper.createAsset(testFileName); 1979 let fd = await photoAsset.open('rw'); 1980 await photoAsset.setPending(true); 1981 // write photo buffer in fd 1982 photoAsset.setPending(false); 1983 await photoAsset.close(fd); 1984 } catch (err) { 1985 console.error(`setPendingPromiseDemo failed with error: ${err.code}, ${err.message}`); 1986 } 1987} 1988``` 1989 1990### isEdited<sup>11+</sup> 1991 1992isEdited(callback: AsyncCallback<boolean>): void 1993 1994查询图片或视频资源是否被编辑过,该方法使用callback形式来返回结果。 1995 1996**系统接口**:此接口为系统接口。 1997 1998**需要权限**:ohos.permission.READ_IMAGEVIDEO 1999 2000**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2001 2002**参数:** 2003 2004| 参数名 | 类型 | 必填 | 说明 | 2005| ---------- | ------- | ---- | ---------------------------------- | 2006| callback | AsyncCallback<boolean> | 是 | Callback对象,返回图片或视频资源是否被编辑过 | 2007 2008**错误码:** 2009 2010接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2011 2012| 错误码ID | 错误信息 | 2013| -------- | ---------------------------------------- | 2014| 201 | Permission denied. | 2015| 202 | Called by non-system application. | 2016| 401 | if parameter is invalid. | 2017| 14000011 | System inner fail. | 2018 2019**示例:** 2020 2021```ts 2022import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2023 2024async function example() { 2025 try { 2026 console.info('isEditedCallbackDemo') 2027 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2028 let fetchOptions: photoAccessHelper.FetchOptions = { 2029 fetchColumns: [], 2030 predicates: predicates 2031 }; 2032 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2033 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2034 photoAsset.isEdited((err, isEdited) => { 2035 if (err === undefined) { 2036 if (isEdited === true) { 2037 console.info('Photo is edited'); 2038 } else { 2039 console.info('Photo is not edited'); 2040 } 2041 } else { 2042 console.error(`isEdited failed with error: ${err.code}, ${err.message}`); 2043 } 2044 }); 2045 } catch (err) { 2046 console.error(`isEditedDemoCallback failed with error: ${err.code}, ${err.message}`); 2047 } 2048} 2049``` 2050 2051### isEdited<sup>11+</sup> 2052 2053isEdited(): Promise<boolean> 2054 2055查询图片或视频资源是否被编辑过,该方法使用promise形式来返回结果。 2056 2057**系统接口**:此接口为系统接口。 2058 2059**需要权限**:ohos.permission.READ_IMAGEVIDEO 2060 2061**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2062 2063**返回值:** 2064 2065| 类型 | 说明 | 2066| --------------------------------------- | ----------------- | 2067|Promise<boolean> | Promise对象,返回图片或视频资源是否被编辑过。 | 2068 2069 2070**错误码:** 2071 2072接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2073 2074| 错误码ID | 错误信息 | 2075| -------- | ---------------------------------------- | 2076| 201 | Permission denied. | 2077| 202 | Called by non-system application. | 2078| 401 | if parameter is invalid. | 2079| 14000011 | System inner fail. | 2080 2081**示例:** 2082 2083```ts 2084import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2085 2086async function example() { 2087 try { 2088 console.info('isEditedPromiseDemo') 2089 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2090 let fetchOptions: photoAccessHelper.FetchOptions = { 2091 fetchColumns: [], 2092 predicates: predicates 2093 }; 2094 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2095 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2096 let isEdited = await photoAsset.isEdited(); 2097 if (isEdited === true) { 2098 console.info('Photo is edited'); 2099 } else { 2100 console.info('Photo is not edited'); 2101 } 2102 } catch (err) { 2103 console.error(`isEditedDemoCallback failed with error: ${err.code}, ${err.message}`); 2104 } 2105} 2106``` 2107 2108### requestEditData<sup>11+</sup> 2109 2110requestEditData(callback: AsyncCallback<string>): void 2111 2112获得图片或视频资源的编辑数据,该方法使用callback形式来返回结果。 2113 2114如果资源未编辑过,则返回一个空字符串。 2115 2116**系统接口**:此接口为系统接口。 2117 2118**需要权限**:ohos.permission.READ_IMAGEVIDEO 2119 2120**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2121 2122**参数:** 2123 2124| 参数名 | 类型 | 必填 | 说明 | 2125| ---------- | ------- | ---- | ---------------------------------- | 2126| callback | AsyncCallback<string> | 是 | Callback对象,返回图片或视频资源的编辑数据 | 2127 2128**错误码:** 2129 2130接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2131 2132| 错误码ID | 错误信息 | 2133| -------- | ---------------------------------------- | 2134| 201 | Permission denied. | 2135| 202 | Called by non-system application. | 2136| 401 | if parameter is invalid. | 2137| 14000011 | System inner fail. | 2138 2139**示例:** 2140 2141```ts 2142import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2143 2144async function example() { 2145 try { 2146 console.info('requestEditDataCallbackDemo') 2147 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2148 let fetchOptions: photoAccessHelper.FetchOptions = { 2149 fetchColumns: [], 2150 predicates: predicates 2151 }; 2152 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2153 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2154 photoAsset.requestEditData((err, editdata) => { 2155 if (err === undefined) { 2156 console.info('Editdata is ' + editdata); 2157 } else { 2158 console.error(`requestEditData failed with error: ${err.code}, ${err.message}`); 2159 } 2160 }); 2161 } catch (err) { 2162 console.error(`requestEditDataCallbackDemo failed with error: ${err.code}, ${err.message}`); 2163 } 2164} 2165``` 2166 2167### requestEditData<sup>11+</sup> 2168 2169requestEditData(): Promise<string> 2170 2171获得图片或视频资源的编辑数据,该方法使用promise形式来返回结果。 2172 2173如果资源未编辑过,则返回一个空字符串。 2174 2175**系统接口**:此接口为系统接口。 2176 2177**需要权限**:ohos.permission.READ_IMAGEVIDEO 2178 2179**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2180 2181**返回值:** 2182 2183| 类型 | 说明 | 2184| --------------------------------------- | ----------------- | 2185|Promise<string> | Promise对象,返回图片或视频资源的编辑数据。 | 2186 2187 2188**错误码:** 2189 2190接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2191 2192| 错误码ID | 错误信息 | 2193| -------- | ---------------------------------------- | 2194| 201 | Permission denied. | 2195| 202 | Called by non-system application. | 2196| 401 | if parameter is invalid. | 2197| 14000011 | System inner fail. | 2198 2199**示例:** 2200 2201```ts 2202import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2203 2204async function example() { 2205 try { 2206 console.info('requestEditDataPromiseDemo') 2207 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2208 let fetchOptions: photoAccessHelper.FetchOptions = { 2209 fetchColumns: [], 2210 predicates: predicates 2211 }; 2212 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2213 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2214 let editdata: string = await photoAsset.requestEditData(); 2215 console.info('Editdata is ' + editdata); 2216 } catch (err) { 2217 console.error(`requestEditDataPromiseDemo failed with error: ${err.code}, ${err.message}`); 2218 } 2219} 2220``` 2221 2222### getEditData<sup>11+</sup> 2223 2224getEditData(): Promise<MediaAssetEditData> 2225 2226获得资产编辑数据,该方法使用promise形式来返回结果。 2227 2228如果资源未编辑过,则返回的编辑数据的内容为空字符串。 2229 2230**系统接口**:此接口为系统接口。 2231 2232**需要权限**:ohos.permission.READ_IMAGEVIDEO 2233 2234**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2235 2236**返回值:** 2237 2238| 类型 | 说明 | 2239| --------------------------------------- | ----------------- | 2240|Promise<[MediaAssetEditData](#mediaasseteditdata11)> | Promise对象,返回资产编辑数据。 | 2241 2242**错误码:** 2243 2244接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2245 2246| 错误码ID | 错误信息 | 2247| -------- | ---------------------------------------- | 2248| 201 | Permission denied. | 2249| 202 | Called by non-system application. | 2250| 401 | if parameter is invalid. | 2251| 14000011 | System inner fail. | 2252 2253**示例:** 2254 2255```ts 2256import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2257 2258async function example() { 2259 try { 2260 console.info('getEditDataDemo') 2261 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2262 let fetchOptions: photoAccessHelper.FetchOptions = { 2263 fetchColumns: [], 2264 predicates: predicates 2265 }; 2266 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2267 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2268 let assetEditData: photoAccessHelper.MediaAssetEditData = await photoAsset.getEditData(); 2269 let data: string = assetEditData.data; 2270 console.info('edit data is ' + data); 2271 } catch (err) { 2272 console.error(`getEditDataDemo failed with error: ${err.code}, ${err.message}`); 2273 } 2274} 2275``` 2276 2277### requestSource<sup>11+</sup> 2278 2279requestSource(callback: AsyncCallback<number>): void 2280 2281打开源文件并返回fd,该方法使用callback形式来返回结果。 2282 2283**系统接口**:此接口为系统接口。 2284 2285**需要权限**:ohos.permission.READ_IMAGEVIDEO 2286 2287**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2288 2289**参数:** 2290 2291| 参数名 | 类型 | 必填 | 说明 | 2292| ---------- | ------- | ---- | ---------------------------------- | 2293| callback | AsyncCallback<number> | 是 | Callback对象,返回源文件fd。 | 2294 2295**错误码:** 2296 2297接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2298 2299| 错误码ID | 错误信息 | 2300| -------- | ---------------------------------------- | 2301| 201 | Permission denied. | 2302| 202 | Called by non-system application. | 2303| 401 | if parameter is invalid. | 2304| 14000011 | System inner fail. | 2305 2306**示例:** 2307 2308```ts 2309import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2310 2311async function example() { 2312 try { 2313 console.info('requsetSourceCallbackDemo') 2314 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2315 let fetchOptions: photoAccessHelper.FetchOptions = { 2316 fetchColumns: [], 2317 predicates: predicates 2318 }; 2319 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2320 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2321 photoAsset.requestSource((err, fd) => { 2322 if (err === undefined) { 2323 console.info('Source fd is ' + fd); 2324 } else { 2325 console.error(`requestSource failed with error: ${err.code}, ${err.message}`); 2326 } 2327 }); 2328 } catch (err) { 2329 console.error(`requsetSourceCallbackDemo failed with error: ${err.code}, ${err.message}`); 2330 } 2331} 2332``` 2333 2334### requestSource<sup>11+</sup> 2335 2336requestSource(): Promise<number> 2337 2338打开源文件并返回fd,该方法使用promise形式来返回结果。 2339 2340**系统接口**:此接口为系统接口。 2341 2342**需要权限**:ohos.permission.READ_IMAGEVIDEO 2343 2344**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2345 2346**返回值:** 2347 2348| 类型 | 说明 | 2349| --------------------------------------- | ----------------- | 2350|Promise<number> | Promise对象,返回源文件fd。 | 2351 2352**错误码:** 2353 2354接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2355 2356| 错误码ID | 错误信息 | 2357| -------- | ---------------------------------------- | 2358| 201 | Permission denied. | 2359| 202 | Called by non-system application. | 2360| 401 | if parameter is invalid. | 2361| 14000011 | System inner fail. | 2362 2363**示例:** 2364 2365```ts 2366import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2367 2368async function example() { 2369 try { 2370 console.info('requsetSourcePromiseDemo') 2371 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2372 let fetchOptions: photoAccessHelper.FetchOptions = { 2373 fetchColumns: [], 2374 predicates: predicates 2375 }; 2376 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2377 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2378 let fd = await photoAsset.requestSource(); 2379 console.info('Source fd is ' + fd); 2380 } catch (err) { 2381 console.error(`requsetSourcePromiseDemo failed with error: ${err.code}, ${err.message}`); 2382 } 2383} 2384``` 2385 2386### commitEditedAsset<sup>11+</sup> 2387 2388commitEditedAsset(editData: string, uri: string, callback: AsyncCallback<void>) 2389 2390提交编辑数据以及编辑后的图片或视频,该方法使用callback形式来返回结果。 2391 2392通过uri将编辑后的文件传递给媒体库,uri是编辑后的文件在应用沙箱下的FileUri,可参考[FileUri](../apis-core-file-kit/js-apis-file-fileuri.md)。 2393 2394**注意**:新的编辑数据提交后,将覆盖掉原来的编辑数据。 2395 2396**系统接口**:此接口为系统接口。 2397 2398**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2399 2400**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2401 2402**参数:** 2403 2404| 参数名 | 类型 | 必填 | 说明 | 2405| ---------- | ------- | ---- | ---------------------------------- | 2406| editData | string | 是 | 提交的编辑数据。 | 2407| uri | string | 是 | 提交的编辑后的图片或视频,在应用沙箱下的uri。 | 2408| callback | AsyncCallback<void> | 是 | Callback对象,返回void。 | 2409 2410**错误码:** 2411 2412接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2413 2414| 错误码ID | 错误信息 | 2415| -------- | ---------------------------------------- | 2416| 201 | Permission denied. | 2417| 202 | Called by non-system application. | 2418| 401 | if parameter is invalid. | 2419| 14000011 | System inner fail. | 2420 2421**示例:** 2422 2423```ts 2424import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2425 2426async function example() { 2427 try { 2428 console.info('commitEditedAssetCallbackDemo') 2429 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2430 let fetchOptions: photoAccessHelper.FetchOptions = { 2431 fetchColumns: [], 2432 predicates: predicates 2433 }; 2434 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2435 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2436 let editData = '123456'; 2437 let uri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg'; 2438 photoAsset.commitEditedAsset(editData, uri, (err) => { 2439 if (err === undefined) { 2440 console.info('commitEditedAsset is successful'); 2441 } else { 2442 console.error(`commitEditedAsset failed with error: ${err.code}, ${err.message}`); 2443 } 2444 }); 2445 } catch (err) { 2446 console.error(`commitEditedAssetCallbackDemo failed with error: ${err.code}, ${err.message}`); 2447 } 2448} 2449``` 2450 2451### commitEditedAsset<sup>11+</sup> 2452 2453commitEditedAsset(editData: string, uri: string): Promise<void> 2454 2455提交编辑数据以及编辑后的图片或视频,该方法使用promise形式来返回结果。 2456 2457通过uri将编辑后的文件传递给媒体库,uri是编辑后的文件在应用沙箱下的FileUri,可参考[FileUri](../apis-core-file-kit/js-apis-file-fileuri.md)。 2458 2459**注意**:新的编辑数据提交后,将覆盖掉原来的编辑数据。 2460 2461**系统接口**:此接口为系统接口。 2462 2463**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2464 2465**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2466 2467**参数:** 2468 2469| 参数名 | 类型 | 必填 | 说明 | 2470| ---------- | ------- | ---- | ---------------------------------- | 2471| editData | string | 是 | 提交的编辑数据。 | 2472| uri | string | 是 | 提交的编辑后的图片或视频,在应用沙箱下的uri。 | 2473 2474**返回值:** 2475 2476| 类型 | 说明 | 2477| --------------------------------------- | ----------------- | 2478|Promise<void> | Promise对象,返回void。 | 2479 2480**错误码:** 2481 2482接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2483 2484| 错误码ID | 错误信息 | 2485| -------- | ---------------------------------------- | 2486| 201 | Permission denied. | 2487| 202 | Called by non-system application. | 2488| 401 | if parameter is invalid. | 2489| 14000011 | System inner fail. | 2490 2491**示例:** 2492 2493```ts 2494import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2495 2496async function example() { 2497 try { 2498 console.info('commitEditedAssetPromiseDemo') 2499 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2500 let fetchOptions: photoAccessHelper.FetchOptions = { 2501 fetchColumns: [], 2502 predicates: predicates 2503 }; 2504 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2505 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2506 let editData = '123456'; 2507 let uri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg'; 2508 await photoAsset.commitEditedAsset(editData, uri); 2509 console.info('commitEditedAsset is successful'); 2510 } catch (err) { 2511 console.error(`commitEditedAssetPromiseDemo failed with error: ${err.code}, ${err.message}`); 2512 } 2513} 2514``` 2515 2516### revertToOriginal<sup>11+</sup> 2517 2518revertToOriginal(callback: AsyncCallback<void>) 2519 2520回退到编辑前的状态,该方法使用callback形式来返回结果。 2521 2522**注意**:调用该接口后,编辑数据和编辑后的图片或视频资源都将被删除,无法恢复,请谨慎调用。 2523 2524**系统接口**:此接口为系统接口。 2525 2526**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2527 2528**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2529 2530**参数:** 2531 2532| 参数名 | 类型 | 必填 | 说明 | 2533| ---------- | ------- | ---- | ---------------------------------- | 2534| callback | AsyncCallback<void> | 是 | Callback对象,返回void。 | 2535 2536**错误码:** 2537 2538接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2539 2540| 错误码ID | 错误信息 | 2541| -------- | ---------------------------------------- | 2542| 201 | Permission denied. | 2543| 202 | Called by non-system application. | 2544| 401 | if parameter is invalid. | 2545| 14000011 | System inner fail. | 2546 2547**示例:** 2548 2549```ts 2550import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2551 2552async function example() { 2553 try { 2554 console.info('revertToOriginalCallbackDemo') 2555 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2556 let fetchOptions: photoAccessHelper.FetchOptions = { 2557 fetchColumns: [], 2558 predicates: predicates 2559 }; 2560 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2561 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2562 photoAsset.revertToOriginal((err) => { 2563 if (err === undefined) { 2564 console.info('revertToOriginal is successful'); 2565 } else { 2566 console.error(`revertToOriginal failed with error: ${err.code}, ${err.message}`); 2567 } 2568 }); 2569 } catch (err) { 2570 console.error(`revertToOriginalCallbackDemo failed with error: ${err.code}, ${err.message}`); 2571 } 2572} 2573``` 2574 2575### revertToOriginal<sup>11+</sup> 2576 2577revertToOriginal(): Promise<void> 2578 2579回退到编辑前的状态,该方法使用promise形式来返回结果。 2580 2581**注意**:调用该接口后,编辑数据和编辑后的图片或视频资源都将被删除,无法恢复,请谨慎调用。 2582 2583**系统接口**:此接口为系统接口。 2584 2585**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2586 2587**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2588 2589**返回值:** 2590 2591| 类型 | 说明 | 2592| --------------------------------------- | ----------------- | 2593|Promise<string> | Promise对象,返回void。 | 2594 2595**错误码:** 2596 2597接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2598 2599| 错误码ID | 错误信息 | 2600| -------- | ---------------------------------------- | 2601| 201 | Permission denied. | 2602| 202 | Called by non-system application. | 2603| 401 | if parameter is invalid. | 2604| 14000011 | System inner fail. | 2605 2606**示例:** 2607 2608```ts 2609import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2610 2611async function example() { 2612 try { 2613 console.info('revertToOriginalPromiseDemo') 2614 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2615 let fetchOptions: photoAccessHelper.FetchOptions = { 2616 fetchColumns: [], 2617 predicates: predicates 2618 }; 2619 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions); 2620 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2621 photoAsset.revertToOriginal(); 2622 console.info('revertToOriginal is successful'); 2623 } catch (err) { 2624 console.error(`revertToOriginalPromiseDemo failed with error: ${err.code}, ${err.message}`); 2625 } 2626} 2627``` 2628 2629### requestPhoto<sup>11+</sup> 2630 2631requestPhoto(callback: AsyncCallback<image.PixelMap>): string 2632 2633通过callback的形式,获取资源的快速缩略图和普通缩略图。 2634 2635快速缩略图尺寸为128\*128,普通缩略图尺寸为256\*256。应用调用接口后,callback将返回两次缩略图对象,第一次为快速缩略图,第二次为普通缩略图。 2636 2637**系统接口**:此接口为系统接口。 2638 2639**需要权限**:ohos.permission.READ_IMAGEVIDEO 2640 2641**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2642 2643**参数:** 2644 2645| 参数名 | 类型 | 必填 | 说明 | 2646| ---------- | ------- | ---- | ---------------------------------- | 2647| callback | AsyncCallback<[image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7)> | 是 | Callback对象,返回获取的缩略图,调用2次。 | 2648 2649**返回值:** 2650 2651| 类型 | 说明 | 2652| --------------------------------------- | ----------------- | 2653| string | 本次获取任务的id。 | 2654 2655**错误码:** 2656 2657接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2658 2659| 错误码ID | 错误信息 | 2660| -------- | ---------------------------------------- | 2661| 201 | Permission denied. | 2662| 202 | Called by non-system application. | 2663| 401 | if parameter is invalid. | 2664| 14000011 | System inner fail. | 2665 2666**示例:** 2667 2668```ts 2669import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2670import image from '@ohos.multimedia.image' 2671 2672async function example() { 2673 try { 2674 console.info('requestPhotoDemo') 2675 let options: photoAccessHelper.FetchOptions = { 2676 fetchColumns: [], 2677 predicates: new dataSharePredicates.DataSharePredicates() 2678 } 2679 let fetchResult = await phAccessHelper.getAssets(options); 2680 let photoAsset = await fetchResult.getFirstObject(); 2681 let taskId: string = photoAsset.requestPhoto(async (err, pixel: image.PixelMap) => { 2682 if (err === undefined) { 2683 console.info("requestSource in, size: " + JSON.stringify((await pixel.getImageInfo()).size)) 2684 } else { 2685 console.error(`requestSource failed with error: ${err.code}, ${err.message}`); 2686 } 2687 }) 2688 console.info('requestSource taskId: ' + taskId) 2689 } catch (err) { 2690 console.error(`requestPhotoDemo failed with error: ${err.code}, ${err.message}`); 2691 } 2692} 2693``` 2694 2695### requestPhoto<sup>11+</sup> 2696 2697requestPhoto(options: RequestPhotoOptions, callback: AsyncCallback<image.PixelMap>): string 2698 2699通过callback的形式,根据传入的选项,获取资源的缩略图。 2700 2701**系统接口**:此接口为系统接口。 2702 2703**需要权限**:ohos.permission.READ_IMAGEVIDEO 2704 2705**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2706 2707**参数:** 2708 2709| 参数名 | 类型 | 必填 | 说明 | 2710| ---------- | ------- | ---- | ---------------------------------- | 2711| options | [RequestPhotoOptions](#requestphotooptions11) | 是 | 获取资源缩略图的选项。 | 2712| callback | AsyncCallback<[image.PixelMap](../apis-image-kit/js-apis-image.md#pixelmap7)> | 是 | Callback对象,返回获取的缩略图,根据选项的设置可能调用超过1次。 | 2713 2714**返回值:** 2715 2716| 类型 | 说明 | 2717| --------------------------------------- | ----------------- | 2718| string | 本次获取任务的id。 | 2719 2720**错误码:** 2721 2722接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2723 2724| 错误码ID | 错误信息 | 2725| -------- | ---------------------------------------- | 2726| 201 | Permission denied. | 2727| 202 | Called by non-system application. | 2728| 401 | if parameter is invalid. | 2729| 14000011 | System inner fail. | 2730 2731**示例:** 2732 2733```ts 2734import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2735import image from '@ohos.multimedia.image' 2736 2737async function example() { 2738 try { 2739 console.info('requestPhotoDemo') 2740 let options: photoAccessHelper.FetchOptions = { 2741 fetchColumns: [], 2742 predicates: new dataSharePredicates.DataSharePredicates() 2743 } 2744 let fetchResult = await phAccessHelper.getAssets(options); 2745 let photoAsset = await fetchResult.getFirstObject(); 2746 let taskId: string = photoAsset.requestPhoto({ 2747 "size": { 2748 "width": 256, 2749 "height": 256 2750 }, 2751 "requestPhotoType": photoAccessHelper.RequestPhotoType.REQUEST_ALL_THUMBNAILS 2752 }, async (err, pixel: image.PixelMap) => { 2753 if (err === undefined) { 2754 console.info("requestSource in, size: " + JSON.stringify((await pixel.getImageInfo()).size)) 2755 } else { 2756 console.error(`requestSource failed with error: ${err.code}, ${err.message}`); 2757 } 2758 }) 2759 console.info('requestSource taskId: ' + taskId) 2760 } catch (err) { 2761 console.error(`requestPhotoDemo failed with error: ${err.code}, ${err.message}`); 2762 } 2763} 2764``` 2765 2766### cancelPhotoRequest<sup>11+</sup> 2767 2768cancelPhotoRequest(requestId: string): void 2769 2770根据id取消指定的获取媒体缩略图的任务。 2771 2772**系统接口**:此接口为系统接口。 2773 2774**需要权限**:ohos.permission.READ_IMAGEVIDEO 2775 2776**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2777 2778**参数:** 2779 2780| 参数名 | 类型 | 必填 | 说明 | 2781| ---------- | ------- | ---- | ---------------------------------- | 2782| requestId | string | 是 | 待取消的获取媒体缩略图的任务id。 | 2783 2784**错误码:** 2785 2786接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2787 2788| 错误码ID | 错误信息 | 2789| -------- | ---------------------------------------- | 2790| 201 | Permission denied. | 2791| 202 | Called by non-system application. | 2792| 401 | if parameter is invalid. | 2793| 14000011 | System inner fail. | 2794 2795**示例:** 2796 2797```ts 2798import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2799import image from '@ohos.multimedia.image' 2800 2801async function example() { 2802 try { 2803 console.info('cancelPhotoRequestDemo') 2804 let options: photoAccessHelper.FetchOptions = { 2805 fetchColumns: [], 2806 predicates: new dataSharePredicates.DataSharePredicates() 2807 } 2808 let fetchResult = await phAccessHelper.getAssets(options); 2809 let photoAsset = await fetchResult.getFirstObject(); 2810 let taskId: string = photoAsset.requestPhoto({ 2811 "size": { 2812 "width": 256, 2813 "height": 256 2814 }, 2815 "requestPhotoType": photoAccessHelper.RequestPhotoType.REQUEST_ALL_THUMBNAILS 2816 }, async (err, pixel: image.PixelMap) => { 2817 if (err === undefined) { 2818 console.info("requestSource in, size: " + JSON.stringify((await pixel.getImageInfo()).size)) 2819 } else { 2820 console.error(`requestSource failed with error: ${err.code}, ${err.message}`); 2821 } 2822 }) 2823 console.info('requestSource taskId: ' + taskId) 2824 photoAsset.cancelPhotoRequest(taskId); 2825 } catch (err) { 2826 console.error(`cancelPhotoRequestDemo failed with error: ${err.code}, ${err.message}`); 2827 } 2828} 2829``` 2830 2831### getAnalysisData<sup>11+</sup> 2832 2833getAnalysisData(analysisType: AnalysisType): Promise\<string> 2834 2835根据智慧分析类型获取指定分析结果数据。 2836 2837**系统接口**:此接口为系统接口。 2838 2839**需要权限**:ohos.permission.READ\_IMAGEVIDEO 2840 2841**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2842 2843**参数:** 2844 2845| 参数名 | 类型 | 必填 | 说明 | 2846| :----------- | :----------- | :- | :----------- | 2847| analysisType | [AnalysisType](#analysistype11) | 是 | 需要获取的智慧分析类型。 | 2848 2849**错误码:** 2850 2851接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2852 2853| 错误码ID | 错误信息 | 2854| :------- | :-------------------------------- | 2855| 201 | Permission denied. | 2856| 202 | Called by non-system application. | 2857| 401 | if parameter is invalid. | 2858| 14000011 | System inner fail. | 2859 2860**示例:** 2861 2862```ts 2863import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2864 2865async function example() { 2866 try { 2867 console.info('getAnalysisDataDemo') 2868 let fetchOptions: photoAccessHelper.FetchOptions = { 2869 fetchColumns: [], 2870 predicates: new dataSharePredicates.DataSharePredicates() 2871 } 2872 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = 2873 await phAccessHelper.getAssets(fetchOptions); 2874 let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2875 if (photoAsset != undefined) { 2876 let analysisData: string = await photoAsset.getAnalysisData( 2877 photoAccessHelper.AnalysisType.ANALYSIS_OCR); 2878 console.info('get ocr result: ' + JSON.stringify(analysisData)); 2879 } 2880 fetchResult.close(); 2881 } catch (err) { 2882 console.error(`getAnalysisDataDemofailed with error: ${err.code}, ${err.message}`); 2883 } 2884} 2885``` 2886 2887## Album 2888 2889实体相册 2890 2891### recoverAssets<sup>(deprecated)</sup> 2892 2893recoverAssets(assets: Array<PhotoAsset>, callback: AsyncCallback<void>): void 2894 2895从回收站中恢复图片或者视频,需要先在回收站中预置文件资源。该方法使用callback形式来返回结果。 2896 2897> **说明:** 2898> 2899> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.recoverAssets](#recoverassets11)替代。 2900 2901**系统接口**:此接口为系统接口。 2902 2903**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2904 2905**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2906 2907**参数:** 2908 2909| 参数名 | 类型 | 必填 | 说明 | 2910| -------- | ------------------------- | ---- | ---------- | 2911| assets | Array<[PhotoAsset](#photoasset)> | 是 | 回收站中待恢复图片或者视频数组。 | 2912| callback | AsyncCallback<void> | 是 | callback返回void。 | 2913 2914**错误码:** 2915 2916接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2917 2918| 错误码ID | 错误信息 | 2919| -------- | ---------------------------------------- | 2920| 202 | Called by non-system application. | 2921| 401 | if parameter is invalid. | 2922| 13900012 | Permission denied. | 2923| 13900020 | Invalid argument. | 2924| 14000011 | System inner fail. | 2925 2926**示例:** 2927 2928```ts 2929import dataSharePredicates from '@ohos.data.dataSharePredicates'; 2930 2931async function example() { 2932 try { 2933 console.info('recoverAssetsDemoCallback'); 2934 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 2935 let fetchOption: photoAccessHelper.FetchOptions = { 2936 fetchColumns: [], 2937 predicates: predicates 2938 }; 2939 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH); 2940 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 2941 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption); 2942 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 2943 album.recoverAssets([asset], (err) => { 2944 if (err === undefined) { 2945 console.info('album recoverAssets successfully'); 2946 } else { 2947 console.error(`album recoverAssets failed with error: ${err.code}, ${err.message}`); 2948 } 2949 }); 2950 } catch (err) { 2951 console.error(`recoverAssetsDemoCallback failed with error: ${err.code}, ${err.message}`); 2952 } 2953} 2954``` 2955 2956### recoverAssets<sup>(deprecated)</sup> 2957 2958recoverAssets(assets: Array<PhotoAsset>): Promise<void> 2959 2960从回收站中恢复图片或者视频,需要先在回收站中预置文件资源。该方法使用Promise来返回结果。 2961 2962> **说明:** 2963> 2964> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.recoverAssets](#recoverassets11)替代。 2965 2966**系统接口**:此接口为系统接口。 2967 2968**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 2969 2970**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 2971 2972**参数:** 2973 2974| 参数名 | 类型 | 必填 | 说明 | 2975| -------- | ------------------------- | ---- | ---------- | 2976| assets | Array<[PhotoAsset](#photoasset)> | 是 | 回收站中待恢复图片或者视频数组。 | 2977 2978**返回值:** 2979 2980| 类型 | 说明 | 2981| --------------------------------------- | ----------------- | 2982|Promise<void> | Promise对象,返回void。 | 2983 2984**错误码:** 2985 2986接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 2987 2988| 错误码ID | 错误信息 | 2989| -------- | ---------------------------------------- | 2990| 202 | Called by non-system application. | 2991| 401 | if parameter is invalid. | 2992| 13900012 | Permission denied. | 2993| 13900020 | Invalid argument. | 2994| 14000011 | System inner fail. | 2995 2996**示例:** 2997 2998```ts 2999import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3000import { BusinessError } from '@ohos.base'; 3001 3002async function example() { 3003 try { 3004 console.info('recoverAssetsDemoPromise'); 3005 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3006 let fetchOption: photoAccessHelper.FetchOptions = { 3007 fetchColumns: [], 3008 predicates: predicates 3009 }; 3010 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH); 3011 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 3012 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption); 3013 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 3014 album.recoverAssets([asset]).then(() => { 3015 console.info('album recoverAssets successfully'); 3016 }).catch((err: BusinessError) => { 3017 console.error(`album recoverAssets failed with error: ${err.code}, ${err.message}`); 3018 }); 3019 } catch (err) { 3020 console.error(`recoverAssetsDemoPromise failed with error: ${err.code}, ${err.message}`); 3021 } 3022} 3023``` 3024 3025### deleteAssets<sup>(deprecated)</sup> 3026 3027deleteAssets(assets: Array<PhotoAsset>, callback: AsyncCallback<void>): void 3028 3029从回收站中彻底删除图片或者视频,需要先在回收站中预置文件资源。该方法使用callback形式来返回结果。 3030 3031> **说明:** 3032> 3033> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.deleteAssets](#deleteassets11)替代。 3034 3035**注意**:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。 3036 3037**系统接口**:此接口为系统接口。 3038 3039**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3040 3041**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3042 3043**参数:** 3044 3045| 参数名 | 类型 | 必填 | 说明 | 3046| -------- | ------------------------- | ---- | ---------- | 3047| assets | Array<[PhotoAsset](#photoasset)> | 是 | 回收站中待彻底删除图片或者视频数组。 | 3048| callback | AsyncCallback<void> | 是 | callback返回void。 | 3049 3050**错误码:** 3051 3052接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3053 3054| 错误码ID | 错误信息 | 3055| -------- | ---------------------------------------- | 3056| 202 | Called by non-system application. | 3057| 401 | if parameter is invalid. | 3058| 13900012 | Permission denied. | 3059| 13900020 | Invalid argument. | 3060| 14000011 | System inner fail. | 3061 3062**示例:** 3063 3064```ts 3065import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3066 3067async function example() { 3068 try { 3069 console.info('deleteAssetsDemoCallback'); 3070 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3071 let fetchOption: photoAccessHelper.FetchOptions = { 3072 fetchColumns: [], 3073 predicates: predicates 3074 }; 3075 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH); 3076 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 3077 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption); 3078 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 3079 album.deleteAssets([asset], (err) => { 3080 if (err === undefined) { 3081 console.info('album deleteAssets successfully'); 3082 } else { 3083 console.error(`album deleteAssets failed with error: ${err.code}, ${err.message}`); 3084 } 3085 }); 3086 } catch (err) { 3087 console.error(`deleteAssetsDemoCallback failed with error: ${err.code}, ${err.message}`); 3088 } 3089} 3090``` 3091 3092### deleteAssets<sup>(deprecated)</sup> 3093 3094deleteAssets(assets: Array<PhotoAsset>): Promise<void> 3095 3096从回收站中彻底删除图片或者视频,需要先在回收站中预置文件资源。该方法使用Promise来返回结果。 3097 3098> **说明:** 3099> 3100> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.deleteAssets](#deleteassets11)替代。 3101 3102**注意**:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。 3103 3104**系统接口**:此接口为系统接口。 3105 3106**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3107 3108**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3109 3110**参数:** 3111 3112| 参数名 | 类型 | 必填 | 说明 | 3113| -------- | ------------------------- | ---- | ---------- | 3114| assets | Array<[PhotoAsset](#photoasset)> | 是 | 回收站中待彻底删除图片或者视频数组。 | 3115 3116**返回值:** 3117 3118| 类型 | 说明 | 3119| --------------------------------------- | ----------------- | 3120|Promise<void> | Promise对象,返回void。 | 3121 3122**错误码:** 3123 3124接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3125 3126| 错误码ID | 错误信息 | 3127| -------- | ---------------------------------------- | 3128| 202 | Called by non-system application. | 3129| 401 | if parameter is invalid. | 3130| 13900012 | Permission denied. | 3131| 13900020 | Invalid argument. | 3132| 14000011 | System inner fail. | 3133 3134**示例:** 3135 3136```ts 3137import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3138import { BusinessError } from '@ohos.base'; 3139 3140async function example() { 3141 try { 3142 console.info('deleteAssetsDemoPromise'); 3143 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3144 let fetchOption: photoAccessHelper.FetchOptions = { 3145 fetchColumns: [], 3146 predicates: predicates 3147 }; 3148 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH); 3149 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 3150 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption); 3151 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 3152 album.deleteAssets([asset]).then(() => { 3153 console.info('album deleteAssets successfully'); 3154 }).catch((err: BusinessError) => { 3155 console.error(`album deleteAssets failed with error: ${err.code}, ${err.message}`); 3156 }); 3157 } catch (err) { 3158 console.error(`deleteAssetsDemoPromise failed with error: ${err.code}, ${err.message}`); 3159 } 3160} 3161``` 3162 3163### setCoverUri<sup>(deprecated)</sup> 3164 3165setCoverUri(uri: string, callback: AsyncCallback<void>): void 3166 3167设置相册封面,该方法使用callback形式来返回结果。 3168 3169> **说明:** 3170> 3171> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.setCoverUri](#setcoveruri11)替代。 3172 3173**注意**:此接口只可修改用户相册封面,不允许修改系统相册封面。 3174 3175**系统接口**:此接口为系统接口。 3176 3177**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3178 3179**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3180 3181**参数:** 3182 3183| 参数名 | 类型 | 必填 | 说明 | 3184| -------- | ------------------------- | ---- | ---------- | 3185| uri | string | 是 | 待设置为相册封面文件的uri。 | 3186| callback | AsyncCallback<void> | 是 | callback返回void。 | 3187 3188**错误码:** 3189 3190接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3191 3192| 错误码ID | 错误信息 | 3193| -------- | ---------------------------------------- | 3194| 202 | Called by non-system application. | 3195| 401 | if parameter is invalid. | 3196| 13900012 | Permission denied. | 3197| 13900020 | Invalid argument. | 3198| 14000011 | System inner fail. | 3199 3200**示例:** 3201 3202```ts 3203import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3204 3205async function example() { 3206 try { 3207 console.info('setCoverUriDemoCallback'); 3208 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3209 let fetchOption: photoAccessHelper.FetchOptions = { 3210 fetchColumns: [], 3211 predicates: predicates 3212 }; 3213 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 3214 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 3215 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption); 3216 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 3217 album.setCoverUri(asset.uri, (err) => { 3218 if (err === undefined) { 3219 console.info('album setCoverUri successfully'); 3220 } else { 3221 console.error(`album setCoverUri failed with error: ${err.code}, ${err.message}`); 3222 } 3223 }); 3224 } catch (err) { 3225 console.error(`setCoverUriDemoCallback failed with error: ${err.code}, ${err.message}`); 3226 } 3227} 3228``` 3229 3230### setCoverUri<sup>(deprecated)</sup> 3231 3232setCoverUri(uri: string): Promise<void> 3233 3234设置相册封面,该方法使用Promise来返回结果。 3235 3236> **说明:** 3237> 3238> 从API version 10开始支持,从API version 11开始废弃。建议使用[MediaAlbumChangeRequest.setCoverUri](#setcoveruri11)替代。 3239 3240**注意**:此接口只可修改用户相册封面,不允许修改系统相册封面。 3241 3242**系统接口**:此接口为系统接口。 3243 3244**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 3245 3246**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3247 3248**参数:** 3249 3250| 参数名 | 类型 | 必填 | 说明 | 3251| -------- | ------------------------- | ---- | ---------- | 3252| uri | string | 是 | 待设置为相册封面文件的uri。 | 3253 3254**返回值:** 3255 3256| 类型 | 说明 | 3257| --------------------------------------- | ----------------- | 3258|Promise<void> | Promise对象,返回void。 | 3259 3260**错误码:** 3261 3262接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3263 3264| 错误码ID | 错误信息 | 3265| -------- | ---------------------------------------- | 3266| 202 | Called by non-system application. | 3267| 401 | if parameter is invalid. | 3268| 13900012 | Permission denied. | 3269| 13900020 | Invalid argument. | 3270| 14000011 | System inner fail. | 3271**示例:** 3272 3273```ts 3274import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3275import { BusinessError } from '@ohos.base'; 3276 3277async function example() { 3278 try { 3279 console.info('setCoverUriDemoPromise'); 3280 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3281 let fetchOption: photoAccessHelper.FetchOptions = { 3282 fetchColumns: [], 3283 predicates: predicates 3284 }; 3285 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 3286 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 3287 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOption); 3288 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 3289 album.setCoverUri(asset.uri).then(() => { 3290 console.info('album setCoverUri successfully'); 3291 }).catch((err: BusinessError) => { 3292 console.error(`album setCoverUri failed with error: ${err.code}, ${err.message}`); 3293 }); 3294 } catch (err) { 3295 console.error(`setCoverUriDemoPromise failed with error: ${err.code}, ${err.message}`); 3296 } 3297} 3298``` 3299 3300## MediaAssetEditData<sup>11+</sup> 3301 3302资产编辑数据。 3303 3304**系统接口**:此接口为系统接口。 3305 3306**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3307 3308### 属性 3309 3310| 名称 | 类型 | 可读 | 可写 | 说明 | 3311| ------------ | ------ | ---- | ---- | ------- | 3312| compatibleFormat | string | 是 | 是 | 编辑数据的格式。**系统接口**:此接口为系统接口。 | 3313| formatVersion | string | 是 | 是 | 编辑数据格式的版本。**系统接口**:此接口为系统接口。 | 3314| data | string | 是 | 是 | 编辑数据的内容。**系统接口**:此接口为系统接口。 | 3315 3316### constructor<sup>11+</sup> 3317 3318constructor(compatibleFormat: string, formatVersion: string) 3319 3320构造函数。 3321 3322**系统接口**:此接口为系统接口。 3323 3324**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3325 3326**参数:** 3327 3328| 参数名 | 类型 | 必填 | 说明 | 3329| -------- | ------------------------- | ---- | ---------- | 3330| compatibleFormat | string | 是 | 编辑数据的格式。 | 3331| formatVersion | string | 是 | 编辑数据格式的版本。 | 3332 3333**错误码:** 3334 3335接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3336 3337| 错误码ID | 错误信息 | 3338| -------- | ---------------------------------------- | 3339| 202 | Called by non-system application. | 3340| 401 | if parameter is invalid. | 3341| 14000011 | System inner fail. | 3342 3343**示例:** 3344 3345```ts 3346let assetEditData: photoAccessHelper.MediaAssetEditData = new photoAccessHelper.MediaAssetEditData('system', '1.0'); 3347``` 3348 3349## MediaAssetChangeRequest<sup>11+</sup> 3350 3351资产变更请求。 3352 3353**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3354 3355### createAssetRequest<sup>11+</sup> 3356 3357static createAssetRequest(context: Context, displayName: string, options?: PhotoCreateOptions): MediaAssetChangeRequest 3358 3359指定待创建的图片或者视频的文件名,创建资产变更请求。 3360 3361待创建的文件名参数规格为: 3362- 应包含有效文件主名和图片或视频扩展名。 3363- 文件名字符串长度为1~255。 3364- 文件主名中不允许出现非法字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ] 3365 3366**系统接口**:此接口为系统接口。 3367 3368**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3369 3370**参数:** 3371 3372| 参数名 | 类型 | 必填 | 说明 | 3373| ------- | ------- | ---- | -------------------------- | 3374| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。 | 3375| displayName | string | 是 | 待创建的图片或者视频文件名。 | 3376| options | [PhotoCreateOptions](#photocreateoptions) | 否 | 图片或视频的创建选项。 | 3377 3378**返回值:** 3379 3380| 类型 | 说明 | 3381| --------------------------------------- | ----------------- | 3382| [MediaAssetChangeRequest](#mediaassetchangerequest11) | 返回创建资产的变更请求。 | 3383 3384**错误码:** 3385 3386接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3387 3388| 错误码ID | 错误信息 | 3389| -------- | ---------------------------------------- | 3390| 202 | Called by non-system application. | 3391| 401 | if parameter is invalid. | 3392| 14000001 | Invalid display name. | 3393| 14000011 | System inner fail. | 3394 3395**示例:** 3396 3397```ts 3398async function example() { 3399 console.info('createAssetRequestDemo'); 3400 try { 3401 let testFileName: string = 'testFile' + Date.now() + '.jpg'; 3402 let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, testFileName); 3403 // 需要确保fileUri对应的资源存在 3404 let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg'; 3405 assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, fileUri); 3406 await phAccessHelper.applyChanges(assetChangeRequest); 3407 console.info('apply createAssetRequest successfully'); 3408 } catch (err) { 3409 console.error(`createAssetRequestDemo failed with error: ${err.code}, ${err.message}`); 3410 } 3411} 3412``` 3413 3414### setFavorite<sup>11+</sup> 3415 3416setFavorite(favoriteState: boolean): void 3417 3418将文件设置为收藏文件。 3419 3420**系统接口**:此接口为系统接口。 3421 3422**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3423 3424**参数:** 3425 3426| 参数名 | 类型 | 必填 | 说明 | 3427| ---------- | ------- | ---- | ---------------------------------- | 3428| favoriteState | boolean | 是 | 是否设置为收藏文件, true:设置为收藏文件;false:取消收藏。 | 3429 3430**错误码:** 3431 3432接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3433 3434| 错误码ID | 错误信息 | 3435| -------- | ---------------------------------------- | 3436| 202 | Called by non-system application. | 3437| 401 | if parameter is invalid. | 3438| 14000011 | System inner fail. | 3439 3440**示例:** 3441 3442```ts 3443import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3444import { BusinessError } from '@ohos.base'; 3445 3446async function example() { 3447 console.info('setFavoriteDemo'); 3448 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3449 let fetchOption: photoAccessHelper.FetchOptions = { 3450 fetchColumns: [], 3451 predicates: predicates 3452 }; 3453 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 3454 let asset = await fetchResult.getFirstObject(); 3455 let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset); 3456 assetChangeRequest.setFavorite(true); 3457 phAccessHelper.applyChanges(assetChangeRequest).then(() => { 3458 console.info('apply setFavorite successfully'); 3459 }).catch((err: BusinessError) => { 3460 console.error(`apply setFavorite failed with error: ${err.code}, ${err.message}`); 3461 }); 3462} 3463``` 3464 3465### setHidden<sup>11+</sup> 3466 3467setHidden(hiddenState: boolean): void 3468 3469将文件设置为隐藏文件。 3470 3471**系统接口**:此接口为系统接口。 3472 3473**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3474 3475**参数:** 3476 3477| 参数名 | 类型 | 必填 | 说明 | 3478| ---------- | ------- | ---- | ---------------------------------- | 3479| hiddenState | boolean | 是 | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 | 3480 3481**错误码:** 3482 3483接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3484 3485| 错误码ID | 错误信息 | 3486| -------- | ---------------------------------------- | 3487| 202 | Called by non-system application. | 3488| 401 | if parameter is invalid. | 3489| 14000011 | System inner fail. | 3490 3491**示例:** 3492 3493```ts 3494import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3495import { BusinessError } from '@ohos.base'; 3496 3497async function example() { 3498 console.info('setHiddenDemo'); 3499 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3500 let fetchOption: photoAccessHelper.FetchOptions = { 3501 fetchColumns: [], 3502 predicates: predicates 3503 }; 3504 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 3505 let asset = await fetchResult.getFirstObject(); 3506 let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset); 3507 assetChangeRequest.setHidden(true); 3508 phAccessHelper.applyChanges(assetChangeRequest).then(() => { 3509 console.info('apply setHidden successfully'); 3510 }).catch((err: BusinessError) => { 3511 console.error(`apply setHidden failed with error: ${err.code}, ${err.message}`); 3512 }); 3513} 3514``` 3515 3516### setUserComment<sup>11+</sup> 3517 3518setUserComment(userComment: string): void 3519 3520修改媒体资产的备注信息。 3521 3522**系统接口**:此接口为系统接口。 3523 3524**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3525 3526**参数:** 3527 3528| 参数名 | 类型 | 必填 | 说明 | 3529| ---------- | ------- | ---- | ---------------------------------- | 3530| userComment | string | 是 | 待修改的资产备注信息,备注信息最长为420字符。 | 3531 3532**错误码:** 3533 3534接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3535 3536| 错误码ID | 错误信息 | 3537| -------- | ---------------------------------------- | 3538| 202 | Called by non-system application. | 3539| 401 | if parameter is invalid. | 3540| 14000011 | System inner fail. | 3541 3542**示例:** 3543 3544```ts 3545import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3546import { BusinessError } from '@ohos.base'; 3547 3548async function example() { 3549 console.info('setUserCommentDemo'); 3550 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3551 let fetchOption: photoAccessHelper.FetchOptions = { 3552 fetchColumns: [], 3553 predicates: predicates 3554 }; 3555 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 3556 let asset = await fetchResult.getFirstObject(); 3557 let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset); 3558 let userComment: string = 'test_set_user_comment'; 3559 assetChangeRequest.setUserComment(userComment); 3560 phAccessHelper.applyChanges(assetChangeRequest).then(() => { 3561 console.info('apply setUserComment successfully'); 3562 }).catch((err: BusinessError) => { 3563 console.error(`apply setUserComment failed with error: ${err.code}, ${err.message}`); 3564 }); 3565} 3566``` 3567 3568### setEditData<sup>11+</sup> 3569 3570setEditData(editData: MediaAssetEditData): void 3571 3572保存资产的编辑数据。 3573 3574**系统接口**:此接口为系统接口。 3575 3576**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3577 3578**参数:** 3579 3580| 参数名 | 类型 | 必填 | 说明 | 3581| ---------- | ------- | ---- | ---------------------------------- | 3582| editData | [MediaAssetEditData](#mediaasseteditdata11) | 是 | 待保存的资产编辑数据。 | 3583 3584**错误码:** 3585 3586接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3587 3588| 错误码ID | 错误信息 | 3589| -------- | ---------------------------------------- | 3590| 202 | Called by non-system application. | 3591| 401 | if parameter is invalid. | 3592| 14000011 | System inner fail. | 3593 3594**示例:** 3595 3596```ts 3597import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3598import { BusinessError } from '@ohos.base'; 3599 3600async function example() { 3601 console.info('setEditDataDemo'); 3602 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3603 let fetchOption: photoAccessHelper.FetchOptions = { 3604 fetchColumns: [], 3605 predicates: predicates 3606 }; 3607 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 3608 let asset = await fetchResult.getFirstObject(); 3609 let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset); 3610 3611 let assetEditData: photoAccessHelper.MediaAssetEditData = new photoAccessHelper.MediaAssetEditData('system', '1.0'); 3612 let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg'; 3613 assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, fileUri); 3614 assetEditData.data = '123456'; 3615 assetChangeRequest.setEditData(assetEditData); 3616 phAccessHelper.applyChanges(assetChangeRequest).then(() => { 3617 console.info('apply setEditData successfully'); 3618 }).catch((err: BusinessError) => { 3619 console.error(`apply setEditData failed with error: ${err.code}, ${err.message}`); 3620 }); 3621} 3622``` 3623 3624### addResource<sup>11+</sup> 3625 3626addResource(type: ResourceType, proxy: PhotoProxy): void 3627 3628通过PhotoProxy数据添加资源。 3629 3630**注意**:对于同一个资产变更请求,不支持在成功添加资源后,重复调用该接口。 3631 3632**系统接口**:此接口为系统接口,仅提供给相机应用使用。 3633 3634**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3635 3636**参数:** 3637 3638| 参数名 | 类型 | 必填 | 说明 | 3639| ------- |---------------------------------| ---- |----------------------| 3640| type | [ResourceType](#resourcetype11) | 是 | 待添加资源的类型。 | 3641| proxy | [PhotoProxy](#photoproxy11) | 是 | 待添加资源的PhotoProxy 数据。 | 3642 3643**错误码:** 3644 3645接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3646 3647| 错误码ID | 错误信息 | 3648|----------|-----------------------------------| 3649| 202 | Called by non-system application. | 3650| 401 | if parameter is invalid. | 3651| 14000011 | System inner fail. | 3652| 14000016 | Operation Not Support. | 3653 3654**示例:** 3655 3656```ts 3657class PhotoProxyImpl implements photoAccessHelper.PhotoProxy { 3658 // 应用实现PhotoProxy 3659} 3660 3661async function example() { 3662 console.info('addResourceByPhotoProxyDemo'); 3663 try { 3664 let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE; 3665 let extension: string = 'jpg'; 3666 let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createAssetRequest(context, photoType, extension); 3667 let photoProxy: PhotoProxyImpl = new PhotoProxyImpl(); 3668 assetChangeRequest.addResource(photoAccessHelper.ResourceType.IMAGE_RESOURCE, photoProxy); 3669 await phAccessHelper.applyChanges(assetChangeRequest); 3670 console.info('addResourceByPhotoProxy successfully'); 3671 } catch (err) { 3672 console.error(`addResourceByPhotoProxyDemo failed with error: ${err.code}, ${err.message}`); 3673 } 3674} 3675``` 3676 3677### setLocation<sup>11+</sup> 3678 3679setLocation(longitude: number, latitude: number): void 3680 3681设置文件的经纬度信息。 3682 3683**系统接口**:此接口为系统接口 3684 3685**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3686 3687**参数:** 3688 3689| 参数名 | 类型 | 必填 | 说明 | 3690| ------- |-------------| ---- |-------| 3691| longitude | number | 是 | 经度。 | 3692| latitude | number | 是 | 纬度。 | 3693 3694**错误码:** 3695 3696接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3697 3698| 错误码ID | 错误信息 | 3699| -------- | ---------------------------------------- | 3700| 202 | Called by non-system application. | 3701| 401 | if parameter is invalid. | 3702| 14000011 | System inner fail. | 3703 3704**示例:** 3705 3706```ts 3707import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3708import { BusinessError } from '@ohos.base'; 3709 3710async function example() { 3711 console.info('setLocationDemo'); 3712 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3713 let fetchOption: photoAccessHelper.FetchOptions = { 3714 fetchColumns: [], 3715 predicates: predicates 3716 }; 3717 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 3718 let asset = await fetchResult.getFirstObject(); 3719 let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = new photoAccessHelper.MediaAssetChangeRequest(asset); 3720 assetChangeRequest.setLocation(120.52, 30.40); 3721 phAccessHelper.applyChanges(assetChangeRequest).then(() => { 3722 console.info('apply setLocation successfully'); 3723 }).catch((err: BusinessError) => { 3724 console.error(`apply setLocation failed with error: ${err.code}, ${err.message}`); 3725 }); 3726} 3727``` 3728 3729## MediaAssetsChangeRequest<sup>11+</sup> 3730 3731批量资产变更请求。 3732 3733**系统接口**:此接口为系统接口。 3734 3735**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3736 3737### constructor<sup>11+</sup> 3738 3739constructor(assets: Array<PhotoAsset>) 3740 3741构造函数。 3742 3743**系统接口**:此接口为系统接口。 3744 3745**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3746 3747**参数:** 3748 3749| 参数名 | 类型 | 必填 | 说明 | 3750| -------- | ------------------------- | ---- | ---------- | 3751| assets | Array<[PhotoAsset](#photoasset)> | 是 | 需要变更的资产数组。 | 3752 3753**错误码:** 3754 3755接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3756 3757| 错误码ID | 错误信息 | 3758| -------- | ---------------------------------------- | 3759| 202 | Called by non-system application. | 3760| 401 | if parameter is invalid. | 3761| 14000011 | System inner fail. | 3762 3763**示例:** 3764 3765```ts 3766import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3767 3768async function example() { 3769 console.info('MediaAssetsChangeRequest constructorDemo'); 3770 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3771 let fetchOption: photoAccessHelper.FetchOptions = { 3772 fetchColumns: [], 3773 predicates: predicates 3774 }; 3775 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 3776 let photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects(); 3777 let assetsChangeRequest: photoAccessHelper.MediaAssetsChangeRequest = new photoAccessHelper.MediaAssetsChangeRequest(photoAssetList); 3778} 3779``` 3780 3781### setFavorite<sup>11+</sup> 3782 3783setFavorite(favoriteState: boolean): void 3784 3785将文件设置为收藏文件。 3786 3787**系统接口**:此接口为系统接口。 3788 3789**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3790 3791**参数:** 3792 3793| 参数名 | 类型 | 必填 | 说明 | 3794| ---------- | ------- | ---- | ---------------------------------- | 3795| favoriteState | 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 | if parameter is invalid. | 3805| 14000011 | System inner fail. | 3806 3807**示例:** 3808 3809```ts 3810import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3811import { BusinessError } from '@ohos.base'; 3812 3813async function example() { 3814 console.info('setFavoriteDemo'); 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 photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects(); 3822 let assetsChangeRequest: photoAccessHelper.MediaAssetsChangeRequest = new photoAccessHelper.MediaAssetsChangeRequest(photoAssetList); 3823 assetsChangeRequest.setFavorite(true); 3824 phAccessHelper.applyChanges(assetsChangeRequest).then(() => { 3825 console.info('apply setFavorite successfully'); 3826 }).catch((err: BusinessError) => { 3827 console.error(`apply setFavorite failed with error: ${err.code}, ${err.message}`); 3828 }); 3829} 3830``` 3831 3832### setHidden<sup>11+</sup> 3833 3834setHidden(hiddenState: boolean): void 3835 3836将文件设置为隐藏文件。 3837 3838**系统接口**:此接口为系统接口。 3839 3840**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3841 3842**参数:** 3843 3844| 参数名 | 类型 | 必填 | 说明 | 3845| ---------- | ------- | ---- | ---------------------------------- | 3846| hiddenState | boolean | 是 | 是否设置为隐藏文件,true:将文件资产放入隐藏相册;false:从隐藏相册中恢复。 | 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 | if parameter is invalid. | 3856| 14000011 | System inner fail. | 3857 3858**示例:** 3859 3860```ts 3861import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3862import { BusinessError } from '@ohos.base'; 3863 3864async function example() { 3865 console.info('setHiddenDemo'); 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 photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects(); 3873 let assetsChangeRequest: photoAccessHelper.MediaAssetsChangeRequest = new photoAccessHelper.MediaAssetsChangeRequest(photoAssetList); 3874 assetsChangeRequest.setHidden(true); 3875 phAccessHelper.applyChanges(assetsChangeRequest).then(() => { 3876 console.info('apply setHidden successfully'); 3877 }).catch((err: BusinessError) => { 3878 console.error(`apply setHidden failed with error: ${err.code}, ${err.message}`); 3879 }); 3880} 3881``` 3882 3883### setUserComment<sup>11+</sup> 3884 3885setUserComment(userComment: string): void 3886 3887修改媒体资产的备注信息。 3888 3889**系统接口**:此接口为系统接口。 3890 3891**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3892 3893**参数:** 3894 3895| 参数名 | 类型 | 必填 | 说明 | 3896| ---------- | ------- | ---- | ---------------------------------- | 3897| userComment | string | 是 | 待修改的资产备注信息,备注信息最长为420字符。 | 3898 3899**错误码:** 3900 3901接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3902 3903| 错误码ID | 错误信息 | 3904| -------- | ---------------------------------------- | 3905| 202 | Called by non-system application. | 3906| 401 | if parameter is invalid. | 3907| 14000011 | System inner fail. | 3908 3909**示例:** 3910 3911```ts 3912import dataSharePredicates from '@ohos.data.dataSharePredicates'; 3913import { BusinessError } from '@ohos.base'; 3914 3915async function example() { 3916 console.info('setUserCommentDemo'); 3917 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 3918 let fetchOption: photoAccessHelper.FetchOptions = { 3919 fetchColumns: [], 3920 predicates: predicates 3921 }; 3922 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption); 3923 let photoAssetList: Array<photoAccessHelper.PhotoAsset> = await fetchResult.getAllObjects(); 3924 let assetsChangeRequest: photoAccessHelper.MediaAssetsChangeRequest = new photoAccessHelper.MediaAssetsChangeRequest(photoAssetList); 3925 assetsChangeRequest.setUserComment('test_set_user_comment'); 3926 phAccessHelper.applyChanges(assetsChangeRequest).then(() => { 3927 console.info('apply setUserComment successfully'); 3928 }).catch((err: BusinessError) => { 3929 console.error(`apply setUserComment failed with error: ${err.code}, ${err.message}`); 3930 }); 3931} 3932``` 3933 3934## MediaAlbumChangeRequest<sup>11+</sup> 3935 3936相册变更请求。 3937 3938**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3939 3940### createAlbumRequest<sup>11+</sup> 3941 3942static createAlbumRequest(context: Context, name: string): MediaAlbumChangeRequest 3943 3944创建相册变更请求。 3945 3946相册名的参数规格为: 3947- 相册名字符串长度为1~255。 3948- 不允许出现非法字符,包括:<br> . .. \ / : * ? " ' ` < > | { } [ ] 3949- 英文字符大小写不敏感。 3950- 相册名不允许重名。 3951 3952**系统接口**:此接口为系统接口。 3953 3954**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 3955 3956**参数:** 3957 3958| 参数名 | 类型 | 必填 | 说明 | 3959| ------- | ------- | ---- | -------------------------- | 3960| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。 | 3961| name | string | 是 | 待创建相册的名称。| 3962 3963**返回值:** 3964 3965| 类型 | 说明 | 3966| --------------------------------------- | ----------------- | 3967| [MediaAlbumChangeRequest](#mediaalbumchangerequest11) | 返回创建相册的变更请求。 | 3968 3969**错误码:** 3970 3971接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 3972 3973| 错误码ID | 错误信息 | 3974| -------- | ---------------------------------------- | 3975| 202 | Called by non-system application. | 3976| 401 | if parameter is invalid. | 3977| 14000011 | System inner fail. | 3978 3979**示例:** 3980 3981```ts 3982async function example() { 3983 console.info('createAlbumRequestDemo'); 3984 try { 3985 let albumName: string = 'newAlbumName' + new Date().getTime(); 3986 let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = photoAccessHelper.MediaAlbumChangeRequest.createAlbumRequest(context, albumName); 3987 await phAccessHelper.applyChanges(albumChangeRequest); 3988 console.info('apply createAlbumRequest successfully'); 3989 } catch (err) { 3990 console.error(`createAlbumRequestDemo failed with error: ${err.code}, ${err.message}`); 3991 } 3992} 3993``` 3994 3995### deleteAlbums<sup>11+</sup> 3996 3997static deleteAlbums(context: Context, albums: Array<Album>): Promise<void> 3998 3999删除相册,使用Promise方式返回结果。 4000 4001删除相册前需先确保相册存在,只能删除用户相册。 4002 4003**系统接口**:此接口为系统接口。 4004 4005**需要权限**:ohos.permission.WRITE_IMAGEVIDEO 4006 4007**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4008 4009**参数:** 4010 4011| 参数名 | 类型 | 必填 | 说明 | 4012| ------- | ------- | ---- | -------------------------- | 4013| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | 是 | 传入Ability实例的Context。 | 4014| albums | Array<[Album](#album)> | 是 | 待删除的相册数组。 | 4015 4016**返回值:** 4017 4018| 类型 | 说明 | 4019| --------------------------------------- | ----------------- | 4020| Promise<void>| Promise对象,返回void。 | 4021 4022**错误码:** 4023 4024接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4025 4026| 错误码ID | 错误信息 | 4027| -------- | ---------------------------------------- | 4028| 201 | Permission denied. | 4029| 202 | Called by non-system application. | 4030| 401 | if parameter is invalid. | 4031| 14000011 | System inner fail. | 4032 4033**示例:** 4034 4035```ts 4036import dataSharePredicates from '@ohos.data.dataSharePredicates'; 4037 4038async function example() { 4039 console.info('deleteAlbumsDemo'); 4040 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4041 let fetchOptions: photoAccessHelper.FetchOptions = { 4042 fetchColumns: [], 4043 predicates: predicates 4044 }; 4045 try { 4046 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions); 4047 let album: photoAccessHelper.Album = await fetchResult.getFirstObject(); 4048 await photoAccessHelper.MediaAlbumChangeRequest.deleteAlbums(context, [album]); 4049 console.info('deleteAlbums successfully'); 4050 } catch (err) { 4051 console.error(`deleteAlbumsDemo failed with error: ${err.code}, ${err.message}`); 4052 } 4053} 4054``` 4055 4056### setCoverUri<sup>11+</sup> 4057 4058setCoverUri(coverUri: string): void 4059 4060设置相册封面。 4061 4062**系统接口**:此接口为系统接口。 4063 4064**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4065 4066**参数:** 4067 4068| 参数名 | 类型 | 必填 | 说明 | 4069| ---------- | ------- | ---- | ---------------------------------- | 4070| coverUri | string | 是 | 待设置为相册封面文件的uri。 | 4071 4072**错误码:** 4073 4074接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4075 4076| 错误码ID | 错误信息 | 4077| -------- | ---------------------------------------- | 4078| 202 | Called by non-system application. | 4079| 401 | if parameter is invalid. | 4080| 14000011 | System inner fail. | 4081 4082**示例:** 4083 4084```ts 4085import dataSharePredicates from '@ohos.data.dataSharePredicates'; 4086 4087async function example() { 4088 console.info('setCoverUriDemo'); 4089 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4090 let fetchOptions: photoAccessHelper.FetchOptions = { 4091 fetchColumns: [], 4092 predicates: predicates 4093 }; 4094 try { 4095 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 4096 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 4097 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions); 4098 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 4099 4100 let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 4101 albumChangeRequest.setCoverUri(asset.uri); 4102 await phAccessHelper.applyChanges(albumChangeRequest); 4103 console.info('setCoverUri successfully'); 4104 } catch (err) { 4105 console.error(`setCoverUriDemo failed with error: ${err.code}, ${err.message}`); 4106 } 4107} 4108``` 4109 4110### moveAssets<sup>11+</sup> 4111 4112moveAssets(assets: Array<PhotoAsset>, targetAlbum: Album): void 4113 4114从相册中移动资产到另一个目标相册。 4115 4116**系统接口**:此接口为系统接口。 4117 4118**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4119 4120**参数:** 4121 4122| 参数名 | 类型 | 必填 | 说明 | 4123| ---------- | ------- | ---- | ---------------------------------- | 4124| assets | Array<[PhotoAsset](#photoasset)> | 是 | 待从相册中移出的资产数组。 | 4125| targetAlbum | Album | 是 | 待移入资产的目标相册。 | 4126 4127**错误码:** 4128 4129接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4130 4131| 错误码ID | 错误信息 | 4132| -------- | ---------------------------------------- | 4133| 202 | Called by non-system application. | 4134| 401 | if parameter is invalid. | 4135| 14000011 | System inner fail. | 4136| 14000016 | Operation Not Support. | 4137 4138**示例:** 4139 4140```ts 4141import dataSharePredicates from '@ohos.data.dataSharePredicates'; 4142 4143async function example() { 4144 console.info('moveAssetsDemo'); 4145 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4146 let fetchOptions: photoAccessHelper.FetchOptions = { 4147 fetchColumns: [], 4148 predicates: predicates 4149 }; 4150 try { 4151 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 4152 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 4153 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions); 4154 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 4155 4156 if (albumFetchResult.isAfterLast()) { 4157 console.error('lack of album to be moved into'); 4158 return; 4159 } 4160 let nextAlbum: photoAccessHelper.Album = await albumFetchResult.getNextObject(); 4161 let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 4162 albumChangeRequest.moveAssets([asset], nextAlbum); 4163 await phAccessHelper.applyChanges(albumChangeRequest); 4164 console.info('moveAssets successfully'); 4165 } catch (err) { 4166 console.error(`moveAssetsDemo failed with error: ${err.code}, ${err.message}`); 4167 } 4168} 4169``` 4170 4171### recoverAssets<sup>11+</sup> 4172 4173recoverAssets(assets: Array<PhotoAsset>): void 4174 4175从回收站中恢复资产。 4176 4177**系统接口**:此接口为系统接口。 4178 4179**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4180 4181**参数:** 4182 4183| 参数名 | 类型 | 必填 | 说明 | 4184| ---------- | ------- | ---- | ---------------------------------- | 4185| assets | Array<[PhotoAsset](#photoasset)> | 是 | 待从回收站中恢复的资产数组。 | 4186 4187**错误码:** 4188 4189接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4190 4191| 错误码ID | 错误信息 | 4192| -------- | ---------------------------------------- | 4193| 202 | Called by non-system application. | 4194| 401 | if parameter is invalid. | 4195| 14000011 | System inner fail. | 4196| 14000016 | Operation Not Support. | 4197 4198**示例:** 4199 4200```ts 4201import dataSharePredicates from '@ohos.data.dataSharePredicates'; 4202 4203async function example() { 4204 console.info('recoverAssetsDemo'); 4205 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4206 let fetchOptions: photoAccessHelper.FetchOptions = { 4207 fetchColumns: [], 4208 predicates: predicates 4209 }; 4210 try { 4211 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH); 4212 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 4213 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions); 4214 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 4215 4216 let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 4217 albumChangeRequest.recoverAssets([asset]); 4218 await phAccessHelper.applyChanges(albumChangeRequest); 4219 console.info('recoverAssets successfully'); 4220 } catch (err) { 4221 console.error(`recoverAssetsDemo failed with error: ${err.code}, ${err.message}`); 4222 } 4223} 4224``` 4225 4226### deleteAssets<sup>11+</sup> 4227 4228deleteAssets(assets: Array<PhotoAsset>): void 4229 4230从回收站中彻底删除资产。 4231 4232**注意**:此操作不可逆,执行此操作后文件资源将彻底删除,请谨慎操作。 4233 4234**系统接口**:此接口为系统接口。 4235 4236**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4237 4238**参数:** 4239 4240| 参数名 | 类型 | 必填 | 说明 | 4241| ---------- | ------- | ---- | ---------------------------------- | 4242| assets | Array<[PhotoAsset](#photoasset)> | 是 | 待从回收站中彻底删除的资产数组。 | 4243 4244**错误码:** 4245 4246接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4247 4248| 错误码ID | 错误信息 | 4249| -------- | ---------------------------------------- | 4250| 202 | Called by non-system application. | 4251| 401 | if parameter is invalid. | 4252| 14000011 | System inner fail. | 4253| 14000016 | Operation Not Support. | 4254 4255**示例:** 4256 4257```ts 4258import dataSharePredicates from '@ohos.data.dataSharePredicates'; 4259 4260async function example() { 4261 console.info('deleteAssetsPermanentlyDemo'); 4262 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4263 let fetchOptions: photoAccessHelper.FetchOptions = { 4264 fetchColumns: [], 4265 predicates: predicates 4266 }; 4267 try { 4268 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SYSTEM, photoAccessHelper.AlbumSubtype.TRASH); 4269 let album: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 4270 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await album.getAssets(fetchOptions); 4271 let asset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject(); 4272 4273 let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 4274 albumChangeRequest.deleteAssets([asset]); 4275 await phAccessHelper.applyChanges(albumChangeRequest); 4276 console.info('succeed to deleteAssets permanently'); 4277 } catch (err) { 4278 console.error(`deleteAssetsPermanentlyDemo failed with error: ${err.code}, ${err.message}`); 4279 } 4280} 4281``` 4282 4283### setDisplayLevel<sup>11+</sup> 4284 4285setDisplayLevel(displayLevel: number): void 4286 4287设置人像相册的显示级别。 4288 4289**系统接口**:此接口为系统接口。 4290 4291**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4292 4293**参数:** 4294 4295| 参数名 | 类型 | 必填 | 说明 | 4296| ---------- | ------- | ---- | ---------------------------------- | 4297| displayLevel | number | 是 | 设置人像相册的显示级别, 0:取消该人像相册收藏;1:设置人像相册为首届面;2:设置人像相册为更多界面;3:设置人像相册为收藏界面。 | 4298 4299**错误码:** 4300 4301接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4302 4303| 错误码ID | 错误信息 | 4304| -------- | ---------------------------------------- | 4305| 202 | Called by non-system application. | 4306| 401 | if parameter is invalid. | 4307| 14000011 | System inner fail. | 4308 4309**示例:** 4310 4311``` ts 4312import dataSharePredicates from '@ohos.data.dataSharePredicates'; 4313 4314async function example() { 4315 try { 4316 console.info('setDisplayLevel Example') 4317 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4318 predicates.equalTo('user_display_level', 2); 4319 let fetchOptions: photoAccessHelper.FetchOptions = { 4320 fetchColumns: [], 4321 predicates: predicates 4322 }; 4323 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.PORTRAIT, fetchOptions); 4324 let album: photoAccessHelper.Album = await fetchResult.getFirstObject(); 4325 let changeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 4326 changeRequest.setDisplayLevel(1); 4327 await phAccessHelper.applyChanges(changeRequest); 4328 } catch (err) { 4329 console.error(`setDisplayLevel failed with error: ${err.code}, ${err.message}`); 4330 } 4331} 4332``` 4333 4334### setIsMe<sup>11+</sup> 4335 4336setIsMe(): void 4337 4338将人像相册的人物关系设置为“我”。 4339 4340**系统接口**:此接口为系统接口。 4341 4342**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4343 4344**错误码:** 4345 4346接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4347 4348| 错误码ID | 错误信息 | 4349| -------- | ---------------------------------------- | 4350| 202 | Called by non-system application. | 4351| 401 | if parameter is invalid. | 4352| 14000011 | System inner fail. | 4353 4354**示例:** 4355 4356``` ts 4357import dataSharePredicates from '@ohos.data.dataSharePredicates'; 4358 4359async function example() { 4360 try { 4361 console.info('setIsMe Example') 4362 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4363 predicates.equalTo('user_display_level', 2); 4364 let fetchOptions: photoAccessHelper.FetchOptions = { 4365 fetchColumns: [], 4366 predicates: predicates 4367 }; 4368 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.PORTRAIT, fetchOptions); 4369 let album: photoAccessHelper.Album = await fetchResult.getFirstObject(); 4370 let changeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 4371 changeRequest.setIsMe(); 4372 await phAccessHelper.applyChanges(changeRequest); 4373 } catch (err) { 4374 console.error(`setIsMe failed with error: ${err.code}, ${err.message}`); 4375 } 4376} 4377``` 4378 4379### dismissAssets<sup>11+</sup> 4380 4381dismissAssets(assets: Array<PhotoAsset>): void 4382 4383从该人像相册中移除指定图片。 4384 4385**系统接口**:此接口为系统接口。 4386 4387**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4388 4389**参数:** 4390 4391| 参数名 | 类型 | 必填 | 说明 | 4392| ---------- | ------- | ---- | ---------------------------------- | 4393| assets | Array<PhotoAsset> | 是 | 需要移除的文件列表 。 | 4394 4395**错误码:** 4396 4397接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4398 4399| 错误码ID | 错误信息 | 4400| -------- | ---------------------------------------- | 4401| 202 | Called by non-system application. | 4402| 401 | if parameter is invalid. | 4403| 14000011 | System inner fail. | 4404| 14000016 | Operation Not support. | 4405 4406**示例:** 4407 4408``` ts 4409import dataSharePredicates from '@ohos.data.dataSharePredicates'; 4410 4411async function example() { 4412 try { 4413 console.info('dismissAssets Example') 4414 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4415 predicates.equalTo('user_display_level', 2); 4416 let fetchOptions: photoAccessHelper.FetchOptions = { 4417 fetchColumns: [], 4418 predicates: predicates 4419 }; 4420 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.PORTRAIT, fetchOptions); 4421 let album: photoAccessHelper.Album = await fetchResult.getFirstObject(); 4422 4423 let predicatesAsset: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4424 let assetFetchOptions: photoAccessHelper.FetchOptions = { 4425 fetchColumns: [], 4426 predicates: predicatesAsset 4427 }; 4428 let assetFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(assetFetchOptions); 4429 let asset: photoAccessHelper.PhotoAsset = await assetFetchResult.getFirstObject(); 4430 4431 let changeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 4432 changeRequest.dismissAssets([asset]); 4433 await phAccessHelper.applyChanges(changeRequest); 4434 } catch (err) { 4435 console.error(`dismissAssets failed with error: ${err.code}, ${err.message}`); 4436 } 4437} 4438``` 4439 4440### mergeAlbum<sup>11+</sup> 4441 4442mergeAlbum(target: Album): void 4443 4444将两个人像相册合并。 4445 4446**系统接口**:此接口为系统接口。 4447 4448**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4449 4450**参数:** 4451 4452| 参数名 | 类型 | 必填 | 说明 | 4453| ---------- | ------- | ---- | ---------------------------------- | 4454| target | [Album](#album) | 是 | 需要合并的目标相册,合并相册必须重命名。 | 4455 4456**错误码:** 4457 4458接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4459 4460| 错误码ID | 错误信息 | 4461| -------- | ---------------------------------------- | 4462| 202 | Called by non-system application. | 4463| 401 | if parameter is invalid. | 4464| 14000011 | System inner fail. | 4465| 14000016 | Operation Not support. | 4466 4467**示例:** 4468 4469``` ts 4470import dataSharePredicates from '@ohos.data.dataSharePredicates'; 4471 4472async function example() { 4473 try { 4474 console.info('mergeAlbum Example') 4475 let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); 4476 predicates.equalTo('user_display_level', 2); 4477 let fetchOptions: photoAccessHelper.FetchOptions = { 4478 fetchColumns: [], 4479 predicates: predicates 4480 }; 4481 let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.SMART, photoAccessHelper.AlbumSubtype.PORTRAIT, fetchOptions); 4482 let album: photoAccessHelper.Album = await fetchResult.getFirstObject(); 4483 if (fetchResult.isAfterLast()) { 4484 console.error('lack of album to merge'); 4485 return; 4486 } 4487 let target: photoAccessHelper.Album = await fetchResult.getNextObject(); 4488 4489 let changeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(album); 4490 changeRequest.mergeAlbum(target); 4491 changeRequest.setAlbumName("testName"); 4492 await phAccessHelper.applyChanges(changeRequest); 4493 } catch (err) { 4494 console.error(`mergeAlbum failed with error: ${err.code}, ${err.message}`); 4495 } 4496} 4497``` 4498 4499### placeBefore<sup>11+</sup> 4500 4501placeBefore(album: Album): void; 4502 4503将当前相册排序到目标相册之前。 4504 4505**系统接口**:此接口为系统接口。 4506 4507**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4508 4509**参数:** 4510 4511| 参数名 | 类型 | 必填 | 说明 | 4512| ---------- | ------- | ---- | ---------------------------------- | 4513| album | [Album](#album) | 是 | 目标相册。如果要将当前相册排序到末位,则目标相册传入null。 | 4514 4515**错误码:** 4516 4517接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。 4518 4519| 错误码ID | 错误信息 | 4520| -------- | ---------------------------------------- | 4521| 202 | Called by non-system application. | 4522| 401 | if parameter is invalid. | 4523| 14000011 | System inner fail. | 4524 4525**示例:** 4526 4527```ts 4528async function example() { 4529 console.info('placeBeforeDemo'); 4530 try { 4531 let albumFetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC); 4532 let firstAlbum: photoAccessHelper.Album = await albumFetchResult.getFirstObject(); 4533 if (albumFetchResult.isAfterLast()) { 4534 console.error('lack of album to place before'); 4535 return; 4536 } 4537 let secondAlbum: photoAccessHelper.Album = await albumFetchResult.getNextObject(); 4538 let albumChangeRequest: photoAccessHelper.MediaAlbumChangeRequest = new photoAccessHelper.MediaAlbumChangeRequest(secondAlbum); 4539 albumChangeRequest.placeBefore(firstAlbum); 4540 await phAccessHelper.applyChanges(albumChangeRequest); 4541 console.info('placeBefore successfully'); 4542 } catch (err) { 4543 console.error(`placeBeforeDemo failed with error: ${err.code}, ${err.message}`); 4544 } 4545} 4546``` 4547 4548## PhotoSubtype 4549 4550枚举,不同[PhotoAsset](#photoasset)的类型。 4551 4552**系统接口**:此接口为系统接口。 4553 4554**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4555 4556| 名称 | 值 | 说明 | 4557| ----- | ---- | ---- | 4558| DEFAULT | 0 | 默认照片类型。 | 4559| SCREENSHOT | 1 | 截屏录屏文件类型。 | 4560 4561## PositionType 4562 4563枚举,文件位置,表示文件在本地或云端。 4564 4565**系统接口**:此接口为系统接口。 4566 4567**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4568 4569| 名称 | 值 | 说明 | 4570| ----- | ---- | ---- | 4571| LOCAL | 1 << 0 | 文件只存在于本端设备。 | 4572| CLOUD | 1 << 1 | 文件只存在于云端。 | 4573 4574## AlbumType 4575 4576枚举,相册类型,表示是用户相册还是系统预置相册。 4577 4578**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4579 4580| 名称 | 值 | 说明 | 4581| ------------------- | ---- | ------------------------- | 4582| SMART<sup>11+</sup> | 4096 | 智慧分析相册。**系统接口**:此接口为系统接口。 | 4583 4584## AlbumSubtype 4585 4586枚举,相册子类型,表示具体的相册类型。 4587 4588**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4589 4590| 名称 | 值 | 说明 | 4591| --------------------------------- | ---------- | ------------------------------- | 4592| HIDDEN | 1027 | 隐藏相册。**系统接口**:此接口为系统接口。 | 4593| TRASH | 1028 | 回收站。**系统接口**:此接口为系统接口。 | 4594| SCREENSHOT | 1029 | 截屏和录屏相册。**系统接口**:此接口为系统接口。 | 4595| CAMERA | 1030 | 相机拍摄的照片和视频相册。**系统接口**:此接口为系统接口。 | 4596| IMAGE<sup>11+</sup> | 1031 | 所有图片相册。**系统接口**:此接口为系统接口。 | 4597| SOURCE\_GENERIC<sup>11+</sup> | 2049 | 来源相册。**系统接口**:此接口为系统接口。 | 4598| CLASSIFY<sup>11+</sup> | 4097 | 分类相册。**系统接口**:此接口为系统接口。 | 4599| GEOGRAPHY\_LOCATION<sup>11+</sup> | 4099 | 地图相册。**系统接口**:此接口为系统接口。 | 4600| GEOGRAPHY\_CITY<sup>11+</sup> | 4100 | 城市相册。**系统接口**:此接口为系统接口。 | 4601| SHOOTING\_MODE<sup>11+</sup> | 4101 | 拍摄模式相册。**系统接口**:此接口为系统接口。 | 4602| PORTRAIT<sup>11+</sup> | 4102 | 人像相册。**系统接口**:此接口为系统接口。 | 4603 4604## RequestPhotoType<sup>11+</sup> 4605 4606枚举,获取图片或视频缩略图的操作类型。 4607 4608**系统接口**:此接口为系统接口。 4609 4610**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4611 4612| 名称 | 值 | 说明 | 4613| ----- | ---- | ---- | 4614| REQUEST_ALL_THUMBNAILS | 0 | 即获取快速缩略图,又获取质量缩略图。 | 4615| REQUEST_FAST_THUMBNAIL | 1 | 只获取快速缩略图。 | 4616| REQUEST_QUALITY_THUMBNAIL | 2 | 只获取质量缩略图。 | 4617 4618## PhotoKeys 4619 4620枚举,图片和视频文件关键信息。 4621 4622**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4623 4624| 名称 | 值 | 说明 | 4625| ------------- | ------------------- | ---------------------------------------------------------- | 4626| POSITION | 'position' | 文件位置类型。**系统接口**:此接口为系统接口。 | 4627| DATE_TRASHED | 'date_trashed' | 删除日期(删除文件时间距1970年1月1日的秒数值)。**系统接口**:此接口为系统接口。 | 4628| HIDDEN | 'hidden' | 文件的隐藏状态。**系统接口**:此接口为系统接口。 | 4629| CAMERA_SHOT_KEY | 'camera_shot_key' | 锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。**系统接口**:此接口为系统接口。 | 4630| USER_COMMENT<sup>10+</sup> | 'user_comment' | 用户注释信息。**系统接口**:此接口为系统接口。 | 4631| DATE_YEAR<sup>11+</sup> | 'date_year' | 创建文件的年份。**系统接口**:此接口为系统接口。 | 4632| DATE_MONTH<sup>11+</sup> | 'date_month' | 创建文件的月份。**系统接口**:此接口为系统接口。 | 4633| DATE_DAY<sup>11+</sup> | 'date_day' | 创建文件的日期。**系统接口**:此接口为系统接口。 | 4634| PENDING<sup>11+</sup> | 'pending' | pending状态。**系统接口**:此接口为系统接口。 | 4635 4636## HiddenPhotosDisplayMode<sup>11+</sup> 4637 4638枚举,系统中隐藏文件显示模式。 4639 4640**系统接口**:此接口为系统接口。 4641 4642**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4643 4644| 名称 | 值 | 说明 | 4645| ------------- | ------------------- | ---------------------------------------------------------- | 4646| ASSETS_MODE | 0 | 按系统预置的隐藏相册显示隐藏文件,即显示系统中所有的隐藏文件。 | 4647| ALBUMS_MODE | 1 | 按相册显示隐藏文件(即显示系统中所有包含隐藏文件的相册,除系统预置的隐藏相册本身和回收站相册以外)。 | 4648 4649## PhotoCreateOptions 4650 4651图片或视频的创建选项。 4652 4653**系统接口**:此接口为系统接口。 4654 4655**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4656 4657| 名称 | 类型 | 必填 | 说明 | 4658| ---------------------- | ------------------- | ---- | ------------------------------------------------ | 4659| subtype | [PhotoSubtype](#photosubtype) | 否 | 图片或者视频的子类型。 | 4660| cameraShotKey | string | 否 | 锁屏相机拍照或录像的标记字段(仅开放给系统相机,其key值由系统相机定义)。 | 4661 4662## RequestPhotoOptions<sup>11+</sup> 4663 4664获取图片或视频缩略图的选项。 4665 4666**系统接口**:此接口为系统接口。 4667 4668**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4669 4670| 名称 | 类型 | 必填 | 说明 | 4671| ---------------------- | ------------------- | ---- | ------------------------------------------------ | 4672| size | [image.Size](../apis-image-kit/js-apis-image.md#size) | 否 | 获取缩略图的尺寸。 | 4673| requestPhotoType | [RequestPhotoType](#requestphototype11) | 否 | 获取的操作类型。 | 4674 4675## RequestOptions<sup>11+</sup> 4676 4677请求策略。 4678 4679**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4680 4681| 名称 | 类型 | 可读 | 可写 | 说明 | 4682| ---------------------- |---------------------------------| ---- |---- | ------------------------------------------------ | 4683| sourceMode | [SourceMode](#sourcemode11) | 是 | 是 | 资源文件的读取类型,可以指定当前请求获取的是源文件,或是编辑后的文件。**系统接口**:此接口为系统接口。 | 4684 4685## PhotoProxy<sup>11+</sup> 4686 4687照片代理,相机应用通过该对象写入图片数据。 4688 4689**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4690 4691## MediaChangeRequest<sup>11+</sup> 4692 4693媒体变更请求,资产变更请求和相册变更请求的父类型。 4694 4695**注意**:媒体变更请求需要在调用[applyChanges](js-apis-photoAccessHelper.md#applychanges11)后才会提交生效。 4696 4697**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4698 4699## FormInfo<sup>11+</sup> 4700 4701图库卡片相关信息。 4702 4703**系统接口**:此接口为系统接口。 4704 4705**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4706 4707| 名称 | 类型 | 必填 | 说明 | 4708| ---------------------- | ------------------- | ---- | ------------------------------------------------ | 4709|formId |string |是 | 卡片的ID,由图库创建卡片时提供。 | 4710|uri |string |是 | 卡片绑定的图片的uri。创建卡片时uri可为空或图片的uri,移除卡片时uri不做校验,传空即可。 | 4711 4712## ResourceType<sup>11+</sup> 4713 4714枚举,写入资源的类型。 4715 4716**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4717 4718| 名称 | 值 | 说明 | 4719| ----- | ---- | ---- | 4720| PHOTO_PROXY | 3 | 表示照片代理资源。**系统接口**:此接口为系统接口。 | 4721 4722## DefaultChangeUri 4723 4724枚举,DefaultChangeUri子类型。 4725 4726**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4727 4728| 名称 | 值 | 说明 | 4729| ----------------- | ----------------------- | ------------------------------------------------------------ | 4730| DEFAULT_HIDDEN_ALBUM_URI<sup>11+</sup> | 'file://media/HiddenAlbum' | 隐藏相册-相册视图中相册的Uri,即系统中包含隐藏文件的相册(不包含系统预置隐藏相册和回收站相册)的Uri,仅用于隐藏相册-相册视图场景的通知。**系统接口**:此接口为系统接口。 | 4731 4732## SourceMode<sup>11+</sup> 4733 4734枚举,资源文件的读取类型。 4735 4736**系统接口**:此接口为系统接口。 4737 4738**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4739 4740| 名称 | 值 | 说明 | 4741| ----- | ---- | ---- | 4742| ORIGINAL_MODE | 0 | 读取源文件。 | 4743| EDITED_MODE | 1 | 读取编辑后的文件。| 4744 4745## AnalysisType<sup>11+</sup> 4746 4747枚举,智慧分析类型。 4748 4749**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 4750 4751| 名称 | 值 | 说明 | 4752| :---------------------------- | :- | :------- | 4753| ANALYSIS\_AESTHETICS\_SCORE | 0 | 美学评分分析类别。**系统接口**:此接口为系统接口。 | 4754| ANALYSIS\_LABEL | 1 | 分类标签分析类别。**系统接口**:此接口为系统接口。 | 4755| ANALYSIS\_OCR | 2 | 文字识别分析类别。**系统接口**:此接口为系统接口。 | 4756| ANALYSIS\_FACE | 3 | 人脸检测分析类别。**系统接口**:此接口为系统接口。 | 4757| ANALYSIS\_OBJECT | 4 | 目标检测分析类别。**系统接口**:此接口为系统接口。 | 4758| ANALYSIS\_RECOMMENDATION | 5 | 推荐构图分析类别。**系统接口**:此接口为系统接口。 | 4759| ANALYSIS\_SEGMENTATION | 6 | 抠图分析类别。**系统接口**:此接口为系统接口。 | 4760| ANALYSIS\_COMPOSITION | 7 | 美学构图分析类别。**系统接口**:此接口为系统接口。 | 4761| ANALYSIS\_SALIENCY | 8 | 最佳呈现主体中心分析类别。**系统接口**:此接口为系统接口。 | 4762| ANALYSIS\_DETAIL\_ADDRESS | 9 | 详细地址分析类别。**系统接口**:此接口为系统接口。 |