从片段中启动摄像头而不是调用onActivityResult()

时间:2018-03-12 15:51:20

标签: android android-fragments android-camera onactivityresult startactivityforresult

编辑:正如我所说,我读了很多,但标记为重复的问题不是同一个场景。我成功加载了Intent Camera,但我无法保存/回到我的片段,我无法点击按钮的相机来保存它。只有回来工作。

好吧,我尝试了大量的代码,但我无法找到解决方案。我在testbed中尝试了我的代码并且它工作(使用MainActivity和两个简单​​的按钮) 现在我移动我的代码在我的应用程序中拍照;它正确地启动了相机Intent,我可以拍照,但是当我点击“应用”按钮时没有任何附加内容。只有后退按钮才有效。 经过大量的更改代码之后,我的代码就在下面...而且我只看到如果我在Phone上用箭头返回,当Intent Camera关闭时,MainActivity上的onActiveResult会被调用,但显然没有数据。

如果你能以正确的方式指出我,请提前致谢!

MainActivity中的

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);
}
在MyFragment中

foto.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {


            Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

            StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
            StrictMode.setVmPolicy(builder.build());
            cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                    Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "/DCIM/Myapp/testPhoto.jpg")) );

            imageUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory()+"/DCIM/Myapp/testPhoto.jpg"));


            startActivityForResult(cameraIntent,CAMERA_REQUEST);

        }

和同一片段中的onActivityResult:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

    System.out.println("Called");
    if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {

        Bitmap bitmap=null;
        try{

            bitmap = BitmapFactory.decodeStream(getActivity().getContentResolver().openInputStream(imageUri));

        } catch (FileNotFoundException e) {

            e.printStackTrace();

        }

1 个答案:

答案 0 :(得分:0)

花了很多时间才找到解决方案......问题只是我没有检查目录是否存在保存照片...实际上我为了测试目的而更改目录而忘记更改它生产。如果它不存在则不会报告错误但您无法保存当前加载的照片!