首页 > 解决方案 > 如何跳过由 androids CAMERA_ACTIVITY 创建的活动?

问题描述

我正在使用 androids 默认相机捕获,然后使用裁剪库拍摄照片,然后将其裁剪为正方形以显示在下一个布局上,图片存储在设备上,并在数据库中创建记录。

      Intent camera_intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            camera_intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(image_file));
            startActivityForResult(camera_intent, CAM_REQUEST);

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

 if(requestCode==2 || requestCode == 6709) {
            if (resultCode == RESULT_CANCELED) {
            } else if (resultCode == RESULT_OK) {

                //Crop.pickImage(this);
                if (requestCode == Crop.REQUEST_CROP && resultCode == RESULT_OK) {
                    //doSomethingWithCroppedImage(outputUri);

                    setResult(resultCode);

 } else {
                    File cropme = new File(tempPicture[4]);
                    if (Build.VERSION.SDK_INT >= 24) {
                        try {
                            Method m = StrictMode.class.getMethod("disableDeathOnFileUriExposure");
                            m.invoke(null);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }

                    new Crop(Uri.fromFile(cropme)).output(Uri.fromFile(cropme)).asSquare().start(this);
                }
            }
        }

问题是有一个如下所示的图片确认页面是多余的,如果我能够将其删除,它将为用户节省大量时间。

从左到右的过程

如何在线编辑默认相机捕捉活动或使用其他相机模板?

我想让流程尽可能高效,所以如果有更好的方法让我知道。

标签: androidimageandroid-capture

解决方案


问题是有一个如下所示的图片确认页面是多余的,如果我能够将其删除,它将为用户节省大量时间。

不要使用ACTION_IMAGE_CAPTURE. 直接使用相机 API(例如 , android.hardware.Cameraandroid.hardware.camera2.*或通过包装它们的库(例如 CameraKit-Android、Fotoapparat)。

我该如何去编辑默认的相机捕捉活动

大约有 10,000 种 Android 设备型号。它们附带数十种(如果不是数百种)不同的相机应用程序。另外,用户自己安装。任何一个都可以回应ACTION_IMAGE_CAPTURE。他们中的任何一个是否有确认屏幕取决于这些应用程序的开发人员,而不是您。如果您想完全控制相机体验,请不要将拍照委托给ACTION_IMAGE_CAPTURE,而是编写您自己的相机代码。


推荐阅读