Android 相机 2 API 镜头切换

Android Camera 2 API Lens switching

我正在尝试实现与小米 MI8 上默认相机应用程序相同的镜头切换功能。 附上截图。

硬件设置:小米 MI8 [API 29] 带广角和长焦镜头的后置摄像头

软件设置:只有一个后置逻辑摄像头可通过 API 访问,其 physicalCameraIds 列表为空。

理论上我们可以创建一堆 OutputConfiguration 对象,设置物理相机 ID 并创建捕获会话,但由于小米 MI8 上缺少 physicalCameraIds,这是不可能的。

有没有人知道如何在小米 8 上实现镜头切换和获取 physicalCameraIds?或者也许有人试图检查其他设备上的 physicalCameraIds?

所有镜头相关领域的后置相机特性(如果对进一步研究有用):

physicalCameraIds: []
availablePhysicalCameraRequestKeys: null
LENS_DISTORTION: null
LENS_FACING: 1
LENS_INFO_AVAILABLE_APERTURES: [1.8]
LENS_INFO_AVAILABLE_FILTER_DENSITIES: [0.0]
LENS_INFO_AVAILABLE_FOCAL_LENGTHS: [4.216]
LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION: [0, 1]
LENS_INFO_FOCUS_DISTANCE_CALIBRATION: 1
LENS_INFO_HYPERFOCAL_DISTANCE: 0.2835498
LENS_INFO_MINIMUM_FOCUS_DISTANCE: 10.0
LENS_INTRINSIC_CALIBRATION: null
LENS_POSE_REFERENCE: null
LENS_POSE_ROTATION: null
LENS_POSE_TRANSLATION: null

您可以在调试 ROM 上通过其 ID 访问广角相机。 Camera id和ROM可由厂商移动部门提供