You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

POCO X8 Pro(Android 16)Camera2 API逻辑相机调用物理相机异常问题

POCO X8 Pro(Android 16/HyperOS)Camera2 API逻辑多相机问题

设备相机配置示例

CameraManager.getCameraIdList()返回:

["0", "1"]

对于逻辑相机"0",调用CameraCharacteristics.getPhysicalCameraIds()返回:

["2", "3"]

预期行为(依据Android Camera2文档)

由于物理相机ID"2"和"3"未出现在CameraManager.getCameraIdList()的返回结果中,它们应仅作为逻辑相机"0"的一部分被使用。正确用法如下:

cameraManager.openCamera("0", stateCallback, handler)

创建会话时:

val outputs = mutableListOf<OutputConfiguration>()

outputs.add(
    OutputConfiguration(previewSurface).apply {
        setPhysicalCameraId("2")
    }
)

val config = SessionConfiguration(
    SessionConfiguration.SESSION_REGULAR,
    outputs,
    executor,
    stateCallback
)

cameraDevice.createCaptureSession(config)

POCO X8 Pro实际行为

会话创建成功,CameraCaptureSession.StateCallback.onConfigured()被调用,但紧接着CameraDevice.StateCallback.onError()触发,错误码为:

ERROR_CAMERA_DEVICE

随后相机关闭。

意外行为

直接打开物理相机ID"2":

cameraManager.openCamera("2", stateCallback, handler)

相机可正常工作,尽管"2"并未出现在CameraManager.getCameraIdList()的返回结果中。

问题总结

该行为与Android Camera2文档不符。未在getCameraIdList()中列出的物理相机ID,通常仅能通过逻辑相机的setPhysicalCameraId()方法访问,但在POCO X8 Pro上:

  • 官方逻辑相机+setPhysicalCameraId()流程触发ERROR_CAMERA_DEVICE错误
  • 直接调用openCamera("2")可正常工作

给小米工作人员的排查建议

请排查POCO X8 Pro是否存在Camera HAL/Camera2元数据问题,并确认物理相机ID应:

  1. 若支持直接打开,则应被包含在getCameraIdList()结果中;或
  2. 通过文档规定的逻辑相机+setPhysicalCameraId()方法可正常调用。

附:其他小米设备(如Xiaomi 15T Pro)可能也受此影响。

设备信息

  • 设备名称:POCO X8 Pro
  • 操作系统:Xiaomi HyperOS 3.0.5.0
  • POCO专属系统版本:3.0.5.0.WPJEUXM
  • Android版本:16 (BP2A.250605.031.A3)
  • Android安全更新:2026-03-01

内容的提问来源于stack exchange,提问作者user924

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 18:42:28