Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.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
Android 如何使默认相机应用程序在拍照后不返回应用程序而继续运行?_Android_Push Notification_Android Camera - Fatal编程技术网

Android 如何使默认相机应用程序在拍照后不返回应用程序而继续运行?

Android 如何使默认相机应用程序在拍照后不返回应用程序而继续运行?,android,push-notification,android-camera,Android,Push Notification,Android Camera,我知道,通过重写camera类创建自定义camera,可以实现上述功能。但我想知道的是,当我点击一个按钮时,我会打开默认设备camera以使用camera intent打开,一旦它打开默认摄像头,我需要通过连续点击拍照按钮(就像我们在camera app上通常做的那样)捕获多个图像,并存储在内存中,而不返回应用程序活动,一旦我完成了多张图片的拍摄,我需要返回到我的应用程序,然后我需要将这些拍摄的图片上传到Webservice。这样做有可能吗?请帮忙。感谢要实现这一点,您必须在应用程序中创建自己的

我知道,通过重写camera类创建自定义camera,可以实现上述功能。但我想知道的是,当我点击一个按钮时,我会打开默认设备camera以使用camera intent打开,一旦它打开默认摄像头,我需要通过连续点击拍照按钮(就像我们在camera app上通常做的那样)捕获多个图像,并存储在内存中,而不返回应用程序活动,一旦我完成了多张图片的拍摄,我需要返回到我的应用程序,然后我需要将这些拍摄的图片上传到Webservice。这样做有可能吗?请帮忙。感谢

要实现这一点,您必须在应用程序中创建自己的嵌入式摄像头,而不是使用打开设备上安装的摄像头应用程序的意图。您可以使用最新的摄像头API 2

是我为我的应用程序需要定制的基本示例。还有两个示例应用程序可以直接从Android studio的示例项目中获得

使用此功能,您可以使用call back方法保存所有图像,还可以按下其他按钮或on back按钮,开始上载这些图像

这是回调方法

/**
 * This a callback object for the {@link ImageReader}. "onImageAvailable" will be called when a
 * still image is ready to be saved.
 */
private final ImageReader.OnImageAvailableListener mOnImageAvailableListener
        = new ImageReader.OnImageAvailableListener() {

    @Override
    public void onImageAvailable(ImageReader reader) {

        //mBackgroundHandler.post(new ImageSaver(reader.acquireNextImage(), mFile));
        // Do what ever you like, Original code does is, it save the image using a handler.
    }

};

这里唯一的问题是,您将无法获得专用相机应用程序提供的高级功能,您也不想编写一个高级相机应用程序,这是一个不同的项目,还需要注意不同的制造商支持三星S5与棒棒糖有一些问题,但是,在对代码进行了一些小的更改之后,代码就可以正常工作。

Android不使用
startActivityForResult()
发布图像捕获意图,而是允许应用程序使用
startActivity()
启动默认的摄像头应用程序(您可以通过PackageManager找到它)。不过,用户将不限于拍摄照片。他们可以切换相机、拍摄视频、查看画廊、共享


当(如果)用户按“返回””时,您的应用程序将恢复。它将不会收到
onActivityResult()
回调,但它将有机会扫描捕获的照片并决定如何处理这些照片。

使用默认的照相机类别无法做到这一点是的。有点我猜我们不能在安卓默认摄像头中执行上述工作。但据我所知,可能还有一些可能性。这就是为什么我把我的问题贴在这里。如果有人遇到这样的情况,请帮忙@古斯曼。感谢您的即时回复。np,我们在这里帮助:),默认相机用于拍照并结束其生命周期,因为您没有任何机会使用默认相机。也许你可以拍摄视频而不是照片,然后从中获取帧?这是最好的方法。与其实现摄像头API,不如使用现有的摄像头应用程序嗨,Alex Cohn。我们可以使用默认的摄像头应用程序,我们如何知道用户点击了多少张照片,以及如何获取该文件的路径以将这些照片上传到服务器上?