请参考以下demoimport picker from '@ohos.multimedia.cameraPicker' import camera from '@ohos.multimedia.camera'; import common from '@ohos.app.ability.common'; import { BusinessError } from '@ohos.base'; import fileuri from '@ohos.file.fileuri'; import fs from '@ohos.file.fs'; import photoAccessHelper from '@ohos.file.photoAccessHelper'; let context = getContext(this) as common.Context; class CameraPosition { cameraPosition: camera.CameraPosition saveUri: string constructor(cameraPosition: camera.CameraPosition, saveUri: string) { this.cameraPosition = cameraPosition this.saveUri = saveUri } } let pathDir = getContext().filesDir; console.log('保存路径为'+pathDir) let filePath = pathDir + '/picture.jpg' fs.createRandomAccessFileSync(filePath, fs.OpenMode.CREATE); let uri = fileuri.getUriFromPath(filePath); async function photo() { try { let pickerProfile = new CameraPosition(camera.CameraPosition.CAMERA_POSITION_BACK, uri) let pickerResult: picker.PickerResult = await picker.pick(context, [picker.PickerMediaType.PHOTO, picker.PickerMediaType.VIDEO], pickerProfile); console.log("the pick pickerResult is:" + JSON.stringify(pickerResult)); } catch (error) { let err = error as BusinessError; console.error(`the pick call failed. error code: ${err.code}`); } } async function picture() { let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions(); PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE; PhotoSelectOptions.maxSelectNumber = 1; let photoPicker = new photoAccessHelper.PhotoViewPicker(); photoPicker.select(PhotoSelectOptions).then((PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => { let photouri: Array<string> = PhotoSelectResult.photoUris let file = fs.openSync(photouri[0], fs.OpenMode.READ_ONLY) let file2 = fs.openSync(pathDir+'/picture2.jpg', fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE) fs.copyFileSync(file.fd, file2.fd) fs.closeSync(file); fs.closeSync(file2); }) } @Entry @Component export struct Index { build() { Column() { Button('选择并保存').onClick(() => { picture() }) Button('拍照并保存').onClick(() => { photo() }) } } }
请参考以下demo