HarmonyOS 使用相机Picker拍照后,读取相片提示无权限,这个要怎么处理

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

这边使用官网上的demo,可以成功获取到拍照后的URI,调用fileIo.openSync方法也是成功的,日志信息如下:

the pick pickerResult is:{"resultCode":0,"resultUri":"file://media/Photo/3/IMG_1721732169_000/IMG_20240723_185429.jpg","mediaType":"photo"} 

demo如下:

import { common } from '@kit.AbilityKit';
import { camera, cameraPicker } from '@kit.CameraKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { fileIo } from '@kit.CoreFileKit';

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

async function startCameraPicker() {
  try {
    let pickerProfile: cameraPicker.PickerProfile = {
      cameraPosition: camera.CameraPosition.CAMERA_POSITION_BACK
    };
    let pickerResult: cameraPicker.PickerResult = await cameraPicker.pick(context,
      [cameraPicker.PickerMediaType.PHOTO, cameraPicker.PickerMediaType.VIDEO], pickerProfile);
    console.log("the pick pickerResult is:" + JSON.stringify(pickerResult));
    let file = fileIo.openSync(pickerResult.resultUri,fileIo.OpenMode.READ_ONLY);
    console.log("the pick file is:" + file);
  } catch (error) {
    let err = error as BusinessError;
    console.error(`the pick call failed. error code: ${err.code}`);
  }
}

@Entry
@Component
struct linshi {
  build() {
    Column() {
      Button("点击拉起相机")
        .onClick(() => startCameraPicker())
    }
    .width("100%")
    .height("100%")
    .justifyContent(FlexAlign.Center)
    .alignItems(HorizontalAlign.Center)
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 相机拍照完,照片读取失败
41浏览 • 1回复 待解决
打开相机:直接使用相机拍照能力
1628浏览 • 1回复 待解决
读取本地json 文件提示权限拒绝
3262浏览 • 1回复 待解决
关于如何使用相机拍照模块拍照问题
1782浏览 • 0回复 待解决
HarmonyOS 自定义相机拍照数据展示
818浏览 • 1回复 待解决
HarmonyOS关于蓝牙无权限的问题
1188浏览 • 1回复 待解决
js相机组件拍照自动保存吗
4193浏览 • 1回复 待解决
HarmonyOS 拉起相机拍照
396浏览 待解决
HarmonyOS 相机拍照模糊
547浏览 • 0回复 待解决
HarmonyOS picker组件如何隐藏拍照按钮
52浏览 • 1回复 待解决
提示数据丢失怎么处理?
4896浏览 • 2回复 待解决
HarmonyOS 相机-拍照之后预览
408浏览 • 1回复 待解决
HarmonyOS 调用相机拍照问题
27浏览 • 1回复 待解决
HarmonyOS 相册,相机拍照并裁剪
92浏览 • 1回复 待解决
HarmonyOS 相机预览拍照流程报错
31浏览 • 1回复 待解决