首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:相机会打开,但不能保存拍摄的镜头,为什么?

Android:相机会打开,但不能保存拍摄的镜头,为什么?
EN

Stack Overflow用户
提问于 2016-11-08 10:19:40
回答 1查看 60关注 0票数 0

我正在尝试拍摄一张照片,并将其保存在画廊的应用程序中。到目前为止,我成功地编写了以下代码:

代码语言:javascript
复制
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,但同样没有保存的映像!

EN

回答 1

Stack Overflow用户

发布于 2016-11-08 10:28:32

您是否将权限放入Manifest.xml中?

代码语言:javascript
复制
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40484380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档