如何从android设备获取LENS_FOCUS_DISTANCE

问题描述:

从android摄像头api2中,我们可以设置LENS_FOCUS_DISTANCE(从0到10)。我的问题是如何获得LENS_FOCUS_DISTANCE?例如,在自动对焦后,我想知道当前的对焦距离。我应该打电话给哪个功能?谢谢。如何从android设备获取LENS_FOCUS_DISTANCE

+0

我对这个问题也很感兴趣。请让我们知道,如果你找到任何解决方案。 –

您将需要创建一个CameraCaptureSession.CaptureCallback并将其提供给您的CaptureRequest.Builder。

mPreviewSession.capture(mPreviewBuilder.build(), captureCallbackHandler, mBackgroundHandler); 

然后覆盖CaptureCallback内onCaptureCompleted方法,你应该能够读取来自TotalCaptureResult的LENS_FOCUS_DISTANCE。

private CameraCaptureSession.CaptureCallback captureCallbackHandler = new CameraCaptureSession.CaptureCallback() { 
    @Override 
    public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request, TotalCaptureResult result) { 
     super.onCaptureCompleted(session, request, result); 
     float focusDistance = result.get(CaptureResult.LENS_FOCUS_DISTANCE); 
    } 
} 

我能够在自动对焦到我的nexus5后读取,但不是在s8上。也许三星限制了这种能力来促进他们自己的相机sdk的使用。