小白请问这串代码出了什么问题?为何调用不了系统相机。。

小白请问这串代码出了什么问题?为何调用不了系统相机。。
点击按钮后进入这个方法

private void takePhoto(){
        Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                //初始化照片路径
        File file = new File(getExternalFilesDir(null)+File.separator+"myPicture");
        if(!file.exists()){
            file.mkdirs();
        }
        String pictureName =new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+".jpg";
        File saveFile= new File(file,pictureName);
        uri = FileProvider.getUriForFile(this,"univ.buaa.icabinet.activity",saveFile);
        intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);//根据这个uri保存照片
        startActivityForResult(intent,REQUEST_CODE_CAMERA);//结果返回onActivityResult函数
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(resultCode==RESULT_OK&&requestCode==REQUEST_CODE_CAMERA) {
            Toast.makeText(this, "保存照片成功", Toast.LENGTH_SHORT).show();
            Bitmap bitmap =(Bitmap) Objects.requireNonNull(data.getExtras()).get("data");
            picture_of_object.setImageBitmap(bitmap);
        }
        super.onActivityResult(requestCode, resultCode, data);
    }}

看下是不是权限的问题。文件系统和相机都需要对应的权限。