I'm working with Android camera2 API.
I can get focus distance value using LENS_FOCUS_DISTANCE in manual focus mode. However, the property is always zero in AF mode. Is there any way to get focus distance in AF mode?
Shortest distance from frontmost surface of the lens that can be brought into sharp focus.
If the lens is fixed-focus, this will be 0.
http://developer.android.com/intl/es/reference/android/hardware/camera2/CameraCharacteristics.html
In other way, if you want to manage focus, remember that LENS_INFO_MINIMUM_FOCUS_DISTANCE
give you the minimum focus, but to get the "Max" focus you must use LENS_INFO_HYPERFOCAL_DISTANCE
.
float yourMinFocus = mCameraCharacteristics.get(CameraCharacteristics.LENS_INFO_MINIMUM_FOCUS_DISTANCE);
float yourMaxFocus = mCameraCharacteristics.get(CameraCharacteristics.LENS_INFO_HYPERFOCAL_DISTANCE);
If the value of LENS_INFO_MINIMUM_FOCUS_DISTANCE
is 0, it means it is fixed focus and not supporting manual focus.
Limited capability - Present on all camera devices that report being at least HARDWARE_LEVEL_LIMITED
来源:https://stackoverflow.com/questions/30724839/android-camera2-api-get-focus-distance-in-af-mode