PhotoPickerUtils.ets 2.18 KB
import { abilityAccessCtrl, common, Permissions } from '@kit.AbilityKit';
import { picker } from '@kit.CoreFileKit';
import { camera, cameraPicker } from '@kit.CameraKit';
import { BusinessError } from '@kit.BasicServicesKit';

let mContext = getContext(this) as common.Context;

const PERMISSIONS: Array<Permissions> = [
  'ohos.permission.READ_IMAGEVIDEO',
];

export class  PhotoPickerUtils {

  async getPhotoPicker(maxSelectNumber:number){
    this.pickerPermissions()

    let PhotoSelectOptions = new picker.PhotoSelectOptions();
    PhotoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE; // 过滤选择媒体文件类型
    PhotoSelectOptions.maxSelectNumber = maxSelectNumber; // 选择媒体文件的最大数目
    let photoPicker = new picker.PhotoViewPicker(); // 使用图库选择器对象前,需要先创建PhotoViewPicker实例

    return new Promise<picker.PhotoSelectResult>((success, fail) => {
      photoPicker.select(PhotoSelectOptions).then((PhotoSelectResult) => {
        if (PhotoSelectResult !== null && PhotoSelectResult !==
          undefined) {
          // 接口采用callback异步返回形式,返回PhotoSelectResult对象,故进行下一步操作前要先判断是否已经成功返回PhotoSelectResult对象了
          success(PhotoSelectResult)
        }
      })
    })
  }

  // async getCamera(){
  //   this.pickerPermissions()
  //
  //   let pickerProfile: cameraPicker.PickerProfile = {
  //     cameraPosition: camera.CameraPosition.CAMERA_POSITION_BACK
  //   };
  //   let pickerResult: cameraPicker.PickerResult = await cameraPicker.pick(mContext,
  //     [cameraPicker.PickerMediaType.PHOTO, cameraPicker.PickerMediaType.VIDEO], pickerProfile);
  //
  //   return new Promise<string>((success, fail) => {
  //     if (pickerResult['resultCode'] === 0) {
  //       success(pickerResult['resultUri'])
  //     }
  //   })
  // }

  async pickerPermissions(){
    ///权限查询
    const context = getContext(this) as common.UIAbilityContext;
    const atManager = abilityAccessCtrl.createAtManager();
    await atManager.requestPermissionsFromUser(context, PERMISSIONS);
  }

}

export const photoPickerUtils: PhotoPickerUtils = new PhotoPickerUtils();