Android 解决三星相机驱动程序中的一个缺陷

Android 解决三星相机驱动程序中的一个缺陷,android,android-camera,Android,Android Camera,我正在编写一个具有自定义照相机功能的应用程序。在它里面,从设备的摄像头拍摄的照片会立即显示给用户,并询问是否真的需要保存。我使用的方法是: public final void takePicture (Camera.ShutterCallback shutter, Camera.PictureCallback raw, Camera.PictureCallback postview, Camera.PictureCallback jpeg) () 根据文档,这种方法在拍照后立即暂停预览,这正是

我正在编写一个具有自定义照相机功能的应用程序。在它里面,从设备的摄像头拍摄的照片会立即显示给用户,并询问是否真的需要保存。我使用的方法是:

public final void takePicture (Camera.ShutterCallback shutter, Camera.PictureCallback raw, Camera.PictureCallback postview, Camera.PictureCallback jpeg)
()

根据文档,这种方法在拍照后立即暂停预览,这正是我需要的功能。但是,在三星设备上,预览没有暂停,我认为这是他们的相机驱动程序中的一个缺陷。我可以在GalaxyS3(GT-I9300)上重现这个bug,QA说他们也在其他三星设备上重现了这个bug。在其他制造商的设备上,这种方法与预期的一样有效

我尝试在每个
Camera.takePicture()
回调中手动暂停预览,但没有一个在拍摄照片的精确时间执行。这导致要求用户查看的图片与实际拍摄的图片之间存在明显的差异,当使用手电筒拍摄图片时,这种差异尤其可怕


是否有办法解决此问题?

如文档所述,并非所有硬件都支持此功能。为了帮助你,我应该问一下,你能从拍照中发布“附近”的代码,以及带有相机权限的清单吗?这主要是为了排除任何不一致性,同时检查应用程序正在执行的场景。还有,这里要说的是,
startPreview()
是否按预期工作?下面是代码:
/*将方向和GPS数据保存到相机参数*/mCamera.setParameters(参数);mCaptureState=捕获;takePicture(mShutterCallback、mNoOpPictureCallback、mNoOpPictureCallback、mPictureCallback)
mShutterCallback
mNoOpPictureCallback
均为空。在清单中,仅请求
startPreview()
和其他方法都可以正常工作,除了相机预览没有被
takePicture()
停止。请编辑您的问题,并在那里添加文本。这些评论更难阅读。就我所能提供的帮助而言,您可以在设备上调试代码,并检查应该停止的异步“任务”正在继续。由于这是一个“品牌”特定的问题,您可以暂时禁用该设备。(我现在想不出旁路)