Android onActivityResult()仅在取消相机时触发

Android onActivityResult()仅在取消相机时触发,android,camera,Android,Camera,我在Android中使用相机时遇到了一些问题。我希望能够 一张图片,并在以后使用该图片(检索URI)。代码如下: newPicBut.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { PhotoChoiceActivity.this.launchCameraIntent(); } }); pu

我在Android中使用相机时遇到了一些问题。我希望能够 一张图片,并在以后使用该图片(检索URI)。代码如下:

newPicBut.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View arg0) {
            PhotoChoiceActivity.this.launchCameraIntent();
        }

    });

public void launchCameraIntent()
{
    //create camera intent              
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    //set fileUri
    MediaManager manager = new MediaManager();
    manager.setPictureName(currentItemToAdd.toString());
    intent.putExtra(MediaStore.EXTRA_OUTPUT, manager.getOutputMediaFileUri());      
    startActivityForResult(intent, 100);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    if(requestCode == 100){
        if(resultCode == RESULT_OK){
            Toast.makeText(getApplicationContext(), "Image saved to: " + data.getData(), Toast.LENGTH_LONG).show();
        }
    }
}
因此,基本上该按钮调用launchCameraIntent()方法。MediaManager创建了一个文件,我使用intent.putExtra中的文件URI来指示文件应该保存在哪里。调用了Camera intent,但问题是:只有在取消Camera intent时才会触发onActivityResult()。所以当我接受我拍的照片时,它根本不会被触发


希望你能帮忙

MediaManager课程在哪里?您是否具有创建URI的适当文件权限?您应该在第二个活动中有第二个方法,用于回调-
Intent return=new Intent();return.putExtra(“结果”,result);setResult(结果正常,返回意图);完成()以通知拍摄的照片。我正在使用正确的文件权限(写入外部存储),@g00dy您能详细说明吗?第二项活动是什么?我启动的摄像头是一个默认的Android活动。还有一件事-你确定你为保存的图像提供的路径存在,并且你正在保存的文件夹存在吗。这一点非常重要,因为如果不将其放置到位,相机将不会停止。是的,文件夹和文件都存在,如果它们不存在,则创建它们。