HarmonyOS 鸿蒙Next 有选择照片的API吗

发布于 1周前 作者 gougou168 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 有选择照片的API吗

比如在android中,可以这样操作:

private static final int PICK_IMAGE_REQUEST = 1;

private void pickImage() {
  Intent intent = new Intent(Intent.ACTION_PICK);
  intent.setType("image/*");
  startActivityForResult(intent, PICK_IMAGE_REQUEST);
}

那在harmony中,要怎么操作?使用photoAccessHelper好像需要自己去实现图片显示和选择图片的页面?


更多关于HarmonyOS 鸿蒙Next 有选择照片的API吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复
使用下列demo实现拉取系统中的图片(可运行该代码并在真机上查看效果),然后选择图片。

官网文档的对应链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-file-picker-V13#photoviewpickerdeprecated

import { photoAccessHelper } from '@kit.MediaLibraryKit';
import { BusinessError } from '@kit.BasicServicesKit';
[@Entry](/user/Entry)
[@Component](/user/Component)
struct GetPicPage {
  build() {
    Column() {
      Button("pickImage").onClick(() => {
        try {
          let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
          PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
          PhotoSelectOptions.maxSelectNumber = 5;
          let photoPicker = new photoAccessHelper.PhotoViewPicker();
          photoPicker.select(PhotoSelectOptions).then((PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => {
            console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult));
          }).catch((err: BusinessError) => {
            console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
          });
        } catch (error) {
          let err: BusinessError = error as BusinessError;
          console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
        }
      })
    }
    .height('100%')
    .width('100%')
  }
}

可以通过判断返回PhotoSelectResult中的photoUris数组是否为空来判断是否选图,因为这个数组本身存储的就是“图库选择后的媒体文件的uri数组”

关于PhotoSelectResult结果集的说明,可以在官网文档处了解详细信息:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-file-picker-V13#photoselectresultdeprecated

更多关于HarmonyOS 鸿蒙Next 有选择照片的API吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


//打开图库获得图片string
  private openPhoto(): Promise<string> {
    return new Promise<string>((resolve) => {
      let photoPicker: photoAccessHelper.PhotoViewPicker = new photoAccessHelper.PhotoViewPicker();
      photoPicker.select({
        MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE,
        maxSelectNumber: 1
      }).then((res: photoAccessHelper.PhotoSelectResult) => {
        resolve(res.photoUris[0]);
      }).catch((err: BusinessError) => {
        Logger.error('OCRDemo'+`Failed to get photo image uri. code:${err.code},message:${err.message}`);
        resolve('');
      })
    })
  } 

可以这样试试

HarmonyOS 鸿蒙Next 有选择照片的API

HarmonyOS 鸿蒙Next确实提供了选择照片的API。对于开发者而言,在HarmonyOS 5.0及更高版本中,可以通过ArkTS框架来利用相关API实现照片选择功能。具体来说,Media Library Kit等组件中包含了用于访问和操作媒体库(包括照片)的API。

开发者可以通过这些API实现以下功能:

  • 从系统相册中选择照片。
  • 获取所选照片的URI或其他相关信息。
  • 对所选照片进行进一步处理,如预览、编辑或上传等。

需要注意的是,开发者在使用这些API时,需要确保应用已经获得了相应的权限,如访问存储的权限,以及遵守HarmonyOS的隐私政策和用户数据保护规定。

如果开发者在集成这些API时遇到具体问题,可以查阅HarmonyOS的官方文档或开发者指南,以获取更详细的API使用说明和示例代码。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部