无法使用Android 4.2.2保存捕获的图像

时间:2014-04-16 14:46:00

标签: android android-camera-intent

在我的应用程序中,我需要使用标准相机应用程序捕获图像。所以,我做的是:

public void TakePhotoProofs() {

        // fetching the root directory
        root = Environment.getExternalStorageDirectory().toString()
                + "/MyAppStoredImages";

        // Creating folders for Image
        imageFolderPath = root + "/captured_images";
        File imagesFolder = new File(imageFolderPath);

        if (!imagesFolder.exists()) {
            imagesFolder.mkdirs();
            }

        // Generating file name by current date
        Time today = new Time(Time.getCurrentTimezone());
        today.setToNow();
        imageName = today.format("%Y-%m-%d-%H-%M-%S") + ".png";

        // Creating image here

        File image = new File(imageFolderPath, imageName);

        fileUri = Uri.fromFile(image);

        imvPhotoFrame.setTag(imageFolderPath + File.separator + imageName);

        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

        takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);

        startActivityForResult(takePictureIntent, CAMERA_IMAGE_REQUEST);
    }

在此代码中,我遇到了以下问题:

  1. 当Intent启动时,我打开了标准相机应用程序
  2. 然后我按下按钮捕捉图像
  3. 在此步骤中,我希望看到已捕获的活动 图像和两个按钮“保存”和“取消”,但我看到黑色 屏幕,然后是步骤(1)中的活动
  4. 在此活动的底部,应该有几个框架 以前和当前捕获的图像的缩略图,但在那里 只是一个空框架。
  5. 当我以方法onActivityResult()返回我的应用时 变量 fileUri 应该包含捕获图像的路径 上一步应该保存在我的文件夹中 的 / MyAppStoredImages / captured_images
  6. 我将采样图像放在特殊的ImageView中。但它是 空的,当我点击那里打开全尺寸图像时,它说 “无法找到元素”
  7. 注意:如果我单独运行标准相机应用程序,则底部框架(来自步骤(4))不为空。

    在将我的固件从Android 4.1.2 Jelly Bean更新到Android 4.2.2 Jelly Bean之后,出现了这种情况。使用Android 4.1.2 Jelly Bean,所有图像都被正确捕获。

    有人有同样的问题吗?在这种情况下我该怎么做?

    更新this post中使用@Mohit给出的命题,我在放入EXTRA_OUTPUT之后添加了以下行:

    takePictureIntent.putExtra("return-data", true);
    

    现在,它可以与第三方相机应用程序(我使用CameraMX测试)正常工作。但我仍然无法使用我的默认相机应用程序(通过上述调用,我无法保存捕获的图像。但是单独此默认应用程序也能正常工作)。

    所以,如果您遇到同样的问题,请以正确的方式引用我。

    以防万一,升级到Android 4.2.2后,三星Galaxy Grand Duos i9082及其默认相机应用程序出现此问题。

0 个答案:

没有答案