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

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

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

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

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

我该怎么做?

【问题讨论】:

    标签: java android camera


    【解决方案1】:

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

    喜欢:

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

    【讨论】:

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

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

    【讨论】:

    • 没错,但您仍然可以使用透明预览或 1x1 预览等技巧。此外,在某些手机上,您显然可以使用未显示的虚拟 SurfaceTextureSurfaceView
    • 它可以在某些设备(如我的注释 2)上在没有 Surfaceview 的情况下工作,但不适用于所有设备。所以使用SurfaceView是必须的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多