相机 2 CaptureResult.CONTROL_AF_STATE - 不活动

Camera2 CaptureResult.CONTROL_AF_STATE - INACTIVE

我正在使用 camera2 api,基于 Google 示例。 在我的设备上工作正常,但在模拟器(可能还有其他一些设备)上不起作用。

原因 CaptureResult.CONTROL_AF_STATE 处于状态 CaptureResult.CONTROL_AF_STATE_INACTIVE

部分代码(与Google示例相同)

case STATE_WAITING_LOCK: {

                Integer afState = result.get(CaptureResult.CONTROL_AF_STATE);

                if (afState == null) {
                    captureStillPicture();
                } else if (CaptureResult.CONTROL_AF_STATE_FOCUSED_LOCKED == afState ||
                        CaptureResult.CONTROL_AF_STATE_NOT_FOCUSED_LOCKED == afState) {
                    // CONTROL_AE_STATE can be null on some devices
                    Integer aeState = result.get(CaptureResult.CONTROL_AE_STATE);
                    if (aeState == null ||
                            aeState == CaptureResult.CONTROL_AE_STATE_CONVERGED) {
                        mState = STATE_PICTURE_TAKEN;
                        captureStillPicture();
                    } else {
                        runPrecaptureSequence();
                    }
                }
                break;
            }

正如我们所看到的,如果状态是 INACTIVE 什么都没有发生。 恐怕这不仅会发生在模拟器上,所以我的问题是即使 AUTO FOCUS STATE INACTIVE 拍照也不安全?怎么办?

在模拟器中,自动对焦模式可能不可用。

所以除了空检查之外,也尝试将条件更改为非活动状态。

     if (afState == null || CaptureResult.CONTROL_AF_STATE_INACTIVE == afState) {
                         captureStillPicture();
     }