可以通过cameraPicer接口提供的saveUri参数传入指定的保存路径,这个路径只支持指定沙箱路径下的保存路径,而且要保存文件到指定的沙箱路径的前提是需要应用首先在沙箱路径下创建一个可写的空文件然后授权给相机,因为这个uri是三方给系统相机授权文件访问,如果没有创建可写的空文件,直接扔个uri,相机这边是没法在沙箱内创建文件的,因为没授权。示例参考:async function demo() { try { let pathDir = getContext().filesDir; console.log('存在'+pathDir) let filePath = pathDir + `/test.jpg` fs.createRandomAccessFileSync(filePath, fs.OpenMode.CREATE); let uri = fileuri.getUriFromPath(filePath); let pickerProfile: picker.PickerProfile = { cameraPosition: camera.CameraPosition.CAMERA_POSITION_BACK, saveUri:uri }; let pickerResult: picker.PickerResult = await picker.pick(mContext, [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}`); } }
可以通过cameraPicer接口提供的saveUri参数传入指定的保存路径,这个路径只支持指定沙箱路径下的保存路径,而且要保存文件到指定的沙箱路径的前提是需要应用首先在沙箱路径下创建一个可写的空文件然后授权给相机,因为这个uri是三方给系统相机授权文件访问,如果没有创建可写的空文件,直接扔个uri,相机这边是没法在沙箱内创建文件的,因为没授权。
示例参考: