Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 拍照后未调用onActivityResult_Java_Android_Android Camera - Fatal编程技术网

Java 拍照后未调用onActivityResult

Java 拍照后未调用onActivityResult,java,android,android-camera,Java,Android,Android Camera,如何知道这个主题是有很好的文档记录的,我在这个问题上读了很多书,但我仍然有以下问题:当我用我的应用程序拍照并点击“验证”按钮时,什么都没有发生。我所做的目的是:传递给onActivityReult函数的不仅仅是缩略图,还有相机拍摄的“整个”照片 以下是为“拍照”按钮定义的侦听器: 这是onActivityResult方法。。。从未调用(并且未在onClickListener方法中声明): 但是,正如标题中所说,onActivityResult不被称为。你能找出原因吗?因为我已经尝试了我在这个主题

如何知道这个主题是有很好的文档记录的,我在这个问题上读了很多书,但我仍然有以下问题:当我用我的应用程序拍照并点击“验证”按钮时,什么都没有发生。我所做的目的是:传递给onActivityReult函数的不仅仅是缩略图,还有相机拍摄的“整个”照片

以下是为“拍照”按钮定义的侦听器:

这是onActivityResult方法。。。从未调用(并且未在onClickListener方法中声明):

但是,正如标题中所说,onActivityResult不被称为。你能找出原因吗?因为我已经尝试了我在这个主题上找到的几乎所有东西,但我应该错过一些东西


谢谢

代码中不清楚,但可以在
onClickListener
中声明
onActivityResult
。如果这是真的,你需要移动它。 看看这个答案:


检查您是否在
AndroidManifest.xml

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

好的,为了解决这个问题,我使用了一些“技巧”,在这里详细介绍:

@Override
        public void onClick(View v) {
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

            File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "CameraTest");
            mediaStorageDir.mkdir(); // make sure you got this folder
            Log.i("Report",mediaStorageDir.toString());
            String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
            File mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_"+ timeStamp + ".jpg");

            try
            {
                //create directories and the file
                mediaFile.getParentFile().mkdirs();
                mediaFile.createNewFile();
            } catch (IOException e) { 
                Log.e("Report", "create error for file "+mediaFile);
                e.printStackTrace();
            }
            tmpFilePath = mediaFile.getPath();
            mFileUri = Uri.fromFile(mediaFile);
            Log.i("Report","Uri: "+mFileUri);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, mFileUri);
            startActivityForResult(intent, CAMERA_PIC_REQUEST);
        }

    });
然后,我在onActivityResult函数中使用该方法恢复存储在tmpFilePath中的文件:

Bitmap image = BitmapFactory.decodeFile(this.tmpFilePath);

而且。。。很好用。在将文件发送到WS时,我仍然存在一些问题,但这段代码已经解决了这个问题。谢谢你的帮助,你让我走上了正轨:)

你确定没有人叫它吗?你用调试器检查过了吗?onActivityResult方法的第一行是打印,我在logcatI中没有任何内容,因为logcat有时会漏掉消息。同意@ronNemmondommegavezetéknevem。检查是否打印了其他logcat消息。请删除super.onActivityResult(请求代码、结果代码、数据);(第2行)从onActivityResult()函数中。不,onActivityResult方法未在onClickListener中声明:)我有这些行,据我所知,文件必须存在才能拍照,因此,请尝试一下上面的代码:)-我进一步更新了它,以提供一个现有的目录来创建文件只是一个问题:如何初始化puc_文件?这是对代码的补充。把它放在新文件的正下方(照片,“puc_img.jpg”)rrraaah。好啊这就是我所做的。因为我只是使用photo var,所以我删除了所有出现的puc_img。我在基本问题中相应地编辑了代码。但现在,我仍然无法触发onActivityResult方法。我做错了什么?
try
{
    //create directories and the file
    puc_file.getParentFile().mkdirs();
    puc_file.createNewFile();
} catch (IOException e) { }    
@Override
        public void onClick(View v) {
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

            File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "CameraTest");
            mediaStorageDir.mkdir(); // make sure you got this folder
            Log.i("Report",mediaStorageDir.toString());
            String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
            File mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_"+ timeStamp + ".jpg");

            try
            {
                //create directories and the file
                mediaFile.getParentFile().mkdirs();
                mediaFile.createNewFile();
            } catch (IOException e) { 
                Log.e("Report", "create error for file "+mediaFile);
                e.printStackTrace();
            }
            tmpFilePath = mediaFile.getPath();
            mFileUri = Uri.fromFile(mediaFile);
            Log.i("Report","Uri: "+mFileUri);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, mFileUri);
            startActivityForResult(intent, CAMERA_PIC_REQUEST);
        }

    });
Bitmap image = BitmapFactory.decodeFile(this.tmpFilePath);