【问题标题】:How to take multiple photos before dismissing camera intent?如何在关闭相机意图之前拍摄多张照片?
【发布时间】:2011-12-27 17:20:53
【问题描述】:

我正在尝试使用通过 Intent (MediaStore.ACTION_IMAGE_CAPTURE) 启动的默认设备相机应用程序拍摄多张照片。使用我正在测试的设备,相机启动,拍照,要求确认,然后返回我处理结果的活动。

我考虑过使用广播接收器回调或内容观察器;但是,在用户完成之前,我找不到启动相机并使其保持活动状态的方法。如果可能,我希望避免开发自定义相机应用程序。

之所以必须这样做是因为用户通常需要连续拍摄多张照片,并且在某些设备上相机启动时间超过5秒,使用该软件的用户连续拍摄10-30张照片;不仅如此,他们还需要控制各种相机参数。

有没有办法启动相机意图并仅在用户退出相机应用程序后返回我的活动

【问题讨论】:

    标签: android camera


    【解决方案1】:

    我通过 SDK 文档发现,设备摄像头有一个替代意图操作,它以静止图像模式启动摄像头,并且在用户完成活动之前不会退出:

    Intent intent = new Intent(
        MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
    this.startActivity(intent);
    

    加上一个 ContentObserver 这正是我需要完成的。

    【讨论】:

    • 它工作正常。但是当我按下返回键时。我得到空指针异常。你能建议我如何摆脱它。
    • @Chris Hutchinson :它拍摄多张图像。但是如何将捕获的图像路径或文件名获取到我们的应用程序中?
    • 这是很久以前的事了,但我遇到的最好的方法是使用 ContentObserver 来检测何时创建图像。如果您觉得不够可靠,您可以检查该路径是否在手机的相机目录中。可能有一个 API 来定位这个目录。我不记得了。
    • 您好,您是如何在这里使用 ContentObserver 的?请帮忙,有同样的情况。
    • ContentObserver 有一个重大缺陷。当相机意图完成时,您必须停止观察照片目录。但是,如果有人在从相机意图返回之前关闭了应用程序怎么办?如果有人在您的应用程序之外使用相机应用程序,您的观察者仍将继续工作并拍摄新照片。
    猜你喜欢
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多