如何在拍摄照片后不使用返回应用程序使默认相机应用程序连续运行?

时间:2015-08-29 05:10:15

标签: android push-notification android-camera

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

2 个答案:

答案 0 :(得分:2)

Android不允许使用startActivityForResult()发布图像捕获意图,而是允许您的应用只使用startActivity()启动默认的相机应用(您可以通过PackageManager找到它)。但是,用户不仅限于拍摄照片。他们可能会切换相机,拍摄视频,查看图库,分享。

当(如果)用户按下" 返回"时,您的应用将会恢复。它不会收到onActivityResult()回调,但它有机会扫描拍摄的照片并决定如何处理它们。

答案 1 :(得分:1)

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

{{3}}是我为应用程序需要定制的基本示例。此外,您还可以直接从Android工作室的示例项目获得2个示例应用程序。

使用此功能,您可以将所有图像保存在回叫方法中,并且还有一个额外的按钮或按下后退按钮,您可以开始上传这些图像。

这是回调方法,

/**
 * 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.
    }

};

这里只有Cavity,你不会得到专用相机应用程序提供的高级功能,你不想写一个高级相机应用程序,这是一个不同的项目,也要注意不同的制造商支持三星S5与棒棒糖有一些问题,但代码在对代码进行一些细微更改后才起作用。