0

我正在使用 Android 5.0 来实现一个应用程序,该应用程序允许自动捕获图像并将其保存到我的手机中。目前,我正在使用下面的代码,但它需要在我手机的捕获 UI 中按下捕获按钮。是否可以在不按捕获按钮的情况下捕获并保存图像?比如我只是调用这个函数myCaptureandSave(),然后手机会显示 Capture UI 并在中间捕获图像并保存,我不需要做更多的步骤。

        public void myCaptureandSave() {
        String image_path = Environment.getExternalStorageDirectory() +"/"+System.currentTimeMillis()+".jpg";
        Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        //File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
        File output = new File(image_path);
        cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(output));
        startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
        }
4

3 回答 3

1

您必须使用相机 API。创建服务,在后台运行,其中包含对此 api 和当前 SurfaceTexture 的引用,这是必要的,相机将“预览到无处”。之后,即使设备被锁定,您也可以拍照

于 2016-08-19T13:34:46.037 回答
1

是的,这是可能的,但我相信你不能使用内部摄像头(调用意图)来做到这一点。您必须使用 Camera2 API。

我制作了一个使用 Camera2 API 的库,如果需要,可以查看:

https://github.com/omaflak/Android-Camera2-Library

SurfaceTexture在您的情况下,只需为预览传递一个虚拟对象并调用takePicture().

希望它会有所帮助

于 2016-08-19T13:36:16.967 回答
0

如何在不使用相机应用程序的情况下在后台捕获图像

我之前试过这个,稍微改动一下我就明白了。希望这可以帮助..

于 2016-08-19T13:43:44.253 回答