如何从android设备获取镜头焦距

如何从android设备获取镜头焦距,android,android-camera2,autofocus,Android,Android Camera2,Autofocus,通过android摄像头api2,我们可以设置镜头焦距(从0到10)。我的问题是如何获得镜头的焦距?例如,自动对焦后,我想知道当前的焦距。我应该调用哪个函数?谢谢。您需要创建CameraCaptureSession.CaptureCallback并将其提供给CaptureRequest.Builder mPreviewSession.capture(mPreviewBuilder.build(), captureCallbackHandler, mBackgroundHandler); 然后在

通过android摄像头api2,我们可以设置镜头焦距(从0到10)。我的问题是如何获得镜头的焦距?例如,自动对焦后,我想知道当前的焦距。我应该调用哪个函数?谢谢。

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

mPreviewSession.capture(mPreviewBuilder.build(), captureCallbackHandler, mBackgroundHandler);
然后在CaptureCallback中重写onCaptureCompleted方法,您应该能够从TotalCaptureResult读取镜头焦距

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。

我也对这个问题感兴趣。如果您找到任何解决方案,请告诉我们。