如何使用相机在 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 预览等技巧。此外,在某些手机上,您显然可以使用未显示的虚拟SurfaceTexture
或 SurfaceView
。
它可以在某些设备(如我的注释 2)上在没有 Surfaceview 的情况下工作,但不适用于所有设备。所以使用SurfaceView是必须的。以上是关于如何使用相机在 Android 上的后台服务中拍照? [复制]的主要内容,如果未能解决你的问题,请参考以下文章