【问题标题】:Android: Camera opens but doesn't save the taken shot, why?Android:相机打开但不保存拍摄的照片,为什么?
【发布时间】:2016-11-08 10:19:40
【问题描述】:

我正在尝试拍照并将其保存在图库应用中。到目前为止,我设法编写了以下代码:

public void sendMessages(View view) {
        Intent intent = new Intent(this, MessagingAdapter.class);
        startActivity(intent);
    }

    public void takePicture(View view) {
        Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, getImageUri());
        startActivityForResult(cameraIntent, TAKE_PHOTO_CODE);
    }


    public Uri getImageUri() {
        picNo++;

        String storageFolderPath = Environment.getExternalStorageDirectory() + "/CameraImages/";
        String fullFileName = storageFolderPath + picNo + ".jpg";
        File newPic = new File(fullFileName);

        Uri outputFileUri = Uri.fromFile(newPic);
        return outputFileUri;
    }

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == 1)
            return;
        if (requestCode == 3) {
            Uri uri = data.getData();  //YOU GET DATA HERE
        }
    }

它正在工作并且没有错误。但是,它不能按我的意愿运行。

我正在 Nexus-7 (CynongeMode) 上进行测试。我的应用程序可以正常打开相机。但是在拍摄后,它会冻结在拍摄的图像上并提供 3 个选项(相机应用程序是内置应用程序):

  1. 取消并从相机返回到我的应用程序,或者
  2. 重新拍摄,或
  3. 接受拍摄的图像!

现在,前两个选项有效,但第三个选项根本没有任何作用,它只是冻结,如下所示:

可能是什么问题以及为什么我无法保存图像?!


更新

我放了一个很简单的onActivityResult方法。但它甚至不去那里(调试时)。但是,当我删除 cameraIntent.putExtra 行时,它会转到 onActivityResult 但又没有保存图像!!。

【问题讨论】:

  • 保存代码部分在哪里?
  • 这里是link,可能会对您有所帮助。
  • 发布你的 onActivityResult 方法
  • @Suda.nese 是的 :) 可能是你在onActivityResult method.lets add onActivityResult中遗漏了一些东西

标签: android


【解决方案1】:

您是否将权限放入Manifest.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

【讨论】:

    猜你喜欢
    • 2015-11-06
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 2014-09-04
    • 2013-11-22
    相关资源
    最近更新 更多