I'm trying this code:
private fun calculateFOV(characteristics: CameraCharacteristics): Fov {
var fov = Fov()
try {
val maxFocus =
characteristics.get(CameraCharacteristics.LENS_INFO_AVAILABLE_FOCAL_LENGTHS)
val size = characteristics.get(CameraCharacteristics.SENSOR_INFO_PHYSICAL_SIZE)
val w = size!!.width
val h = size!!.height
val horizonalAngle = (2 * atan((w / (maxFocus!![0] * 2)).toDouble())).toFloat()
val verticalAngle = (2 * atan((h / (maxFocus!![0] * 2)).toDouble())).toFloat()
fov.orizonalAngle = horizonalAngle
fov.verticalAngle = verticalAngle
} catch (e: CameraAccessException) {
e.printStackTrace()
}
return fov
}
and this log on my Pixel 8Pro . I found 7 camera id. 1 -> is front camera, 0 -> back camera
physical camera 2 is the logical camera but i have two physical camera larger than logical camera and other 2 minor...
camera id back 0
fovMain horizonalAngle 1.2342335 verticalAngle 0.98135835
idCamera physical : 2
fovCameraId[2] horizonalAngle 1.2342335 verticalAngle 0.98135835 idCamera physical : 3
fovCameraId[3] horizonalAngle 1.9243414 verticalAngle 1.6441976
idCamera physical : 4
fovCameraId[4] horizonalAngle 0.3110672 verticalAngle 0.23412466
idCamera physical : 5
fovCameraId[5] horizonalAngle 0.68185824 verticalAngle 0.52207065
idCamera physical : 6
fovCameraId[6] horizonalAngle 0.15647992 verticalAngle 0.11746475
Giuseppe Sorce | Mobile Developer skype pepigno75