如何使用相机在 Android 上的后台服务中拍照? [复制]

Posted

技术标签:

【中文标题】如何使用相机在 Android 上的后台服务中拍照? [复制]【英文标题】:How to use Camera to take picture in a background Service on Android? [duplicate] 【发布时间】:2011-11-15 23:13:03 【问题描述】:

我正在开发一个在后台运行的服务,它可以成功地将图像和数据上传到网络。

现在我要上传相机拍摄的图像。

android 2.2 上是否可以在后台服务中使用相机而不进行预览?

我在网上找到了各种对比答案...

我该怎么做?

【问题讨论】:

【参考方案1】:

您可以在没有预览的情况下使用虚拟视图拍照。

喜欢:

SurfaceView view = new SurfaceView(this);
c.setPreviewDisplay(view.getHolder());
c.startPreview();
c.takePicture(shutterCallback, rawPictureCallback, jpegPictureCallback);

【讨论】:

这不适用于所有设备,如下所述:***.com/a/5384913/318870 什么是c,shutterCallback和所有变量..请提供整个代码 此代码不正确。我需要将view 添加到WindowManager。我还需要给view.getHolder()添加一个回调,然后在surfaceCreated中设置预览,开始预览,然后拍照。【参考方案2】:

没有预览/表面视图是不可能的。

【讨论】:

没错,但您仍然可以使用透明预览或 1x1 预览等技巧。此外,在某些手机上,您显然可以使用未显示的虚拟 SurfaceTextureSurfaceView 它可以在某些设备(如我的注释 2)上在没有 Surfaceview 的情况下工作,但不适用于所有设备。所以使用SurfaceView是必须的。

以上是关于如何使用相机在 Android 上的后台服务中拍照? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Android:是不是可以从没有用户界面的服务中用相机拍照[重复]

Android:如何在不拍照的情况下从相机捕获文本?

以编程方式在 Android 上使用相机拍照

在android中拍照的默认相机

Android在后台运行任务时关闭屏幕

Android调用相机实现拍照并裁剪图片,调用手机中的相冊图片并裁剪图片