在某些设备上拍照后,应用程序关闭

时间:2018-09-04 15:40:23

标签: android

在Samsung Galaxy Grand Prime Pro拍照后,我的应用程序崩溃了,但是在其他设备上可以使用。我试图弄清楚为什么会这样,但是却无法弄清楚。

视频录制正常,但不知道为什么图片出错。

这是拍照时发生的事情:

当午餐吃午饭并拍照时,当我单击确定时,出现错误提示,提示 Appname已停止

视频运行良好,但是当我拍摄图片并单击“确定”返回时,会出现错误。

下面是我用于捕获图像和视频的代码

  public void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (resultCode == Activity.RESULT_OK) {
                if (requestCode == TAKE_PICTURE) {
                    capturedImageUri = data.getData();

                    if (!hasPermissions(this, PERMISSIONS)){
                        ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
                    }else {
                        mediaFile = "";
                        mediaFile = getRealPathFromURIPath(capturedImageUri, EventActivity.this);
                        Log.d(TAG, "Capture image path" + mediaFile);
                        attachmentStatus.setText("Image file has been attached");
                        isImage = true;
                    }
                }
                if (requestCode == REQUEST_VIDEO_CAPTURE) {
                    videoUri = data.getData();

                    if (!hasPermissions(this, PERMISSIONS)){
                        ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
                    }else{
                        videoFile = getRealPathFromURIPath(videoUri, EventActivity.this);
                        Log.d(TAG, "Captured video path " + videoUri);
                        Log.d(TAG, "New path " + videoFile);
                        attachmentStatus.setText("Video file has been attached");
                        isImage = false;
                    }
                }
            }
        }

 private void showOptionDialog(){
        final Dialog dialog = new Dialog(EventActivity.this);
        dialog.setTitle("SELECT ACTION TO COMPLETE");
        dialog.setContentView(R.layout.image_video_layout);

        final TextView takePhoto = (TextView)dialog.findViewById(R.id.take_photo);
        final TextView recordVideo = (TextView)dialog.findViewById(R.id.record_video);

        dialog.show();

        takePhoto.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                Log.d(TAG, "Take a picture");
                if(isLocationEnabled()){
                    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    startActivityForResult(intent, TAKE_PICTURE);
                }else{
                    showLocationAlert();
                }
                dialog.dismiss();
            }
        });

        recordVideo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.d(TAG, "Record a video");
                Intent videoCaptureIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
                if(videoCaptureIntent.resolveActivity(getPackageManager()) != null){
                    startActivityForResult(videoCaptureIntent, REQUEST_VIDEO_CAPTURE);
                }
                dialog.dismiss();
            }
        });
    }

0 个答案:

没有答案