提供uri时,Camera Intent为null

时间:2013-04-10 18:38:07

标签: android android-camera android-camera-intent

首先,我确实看了其他有关此事的问题,但他们说要做我正在做的事情。

我正试图启动相机拍这样的照片

PackageManager pm = getPackageManager();
        if(pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)){
                Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

                File tempDir= new File(Environment.getExternalStoragePublicDirectory(
                          Environment.DIRECTORY_PICTURES), "My App");
                if(!tempDir.exists())
                {
                    if(!tempDir.mkdir()){
                        Toast.makeText(this, "Please check SD card! Image shot is impossible!", Toast.LENGTH_SHORT).show();
                    }
                }

                String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",Locale.US).format(new Date());
                File mediaFile = new File(tempDir.getPath() + File.separator +
                "IMG_"+ timeStamp + ".jpg");

                photoUri = Uri.fromFile(mediaFile);
                camera.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
                startActivityForResult(camera, CAMERA_REQUEST);
        }else{
            Toast.makeText(this, "This device does not have a rear facing camera",Toast.LENGTH_SHORT).show();
        }

但是当它回到onActivityResult时,意图为空,但结果为OK。我可以转到设备上的目录,看看它是否已正确保存。

如果我取出camera.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);并只创建一个启动相机的基本意图,则返回时意图不为空。

我猜测photoUri仍然有效并且可以安全存储,因为图像在目录中,但为什么在我提供uri时返回的intent为null?

0 个答案:

没有答案