Sirop4ik
Sirop4ik

Reputation: 5243

Why i get result.get(CaptureResult.CONTROL_AF_STATE); == INACTIVE?

I work with camera2API on Samsung S5 and if i try get state of focus i get value 0 which is equals to CaptureResult.CONTROL_AF_STATE_INACTIVE...

There is snip of code :

private void process(CaptureResult result) {
        switch (mState) {
            case CameraHelper.STATE_PREVIEW: {
                // We have nothing to do when the camera preview is working normally.

here i get ---> Integer afState = result.get(CaptureResult.CONTROL_AF_STATE);

                if (CaptureResult.CONTROL_AF_TRIGGER_START == afState) {
                    if (areWeFocused) {
                        Log.e("---!!! HERE !!!--- :", String.valueOf(areWeFocused));
                    }else {
                    }
                }

                if (CaptureResult.CONTROL_AF_STATE_PASSIVE_FOCUSED == afState) {
                    areWeFocused = true;
                } else {
                    areWeFocused = false;
                }

                break;
            }

But i also tried to test it on my Meizu MX5 and i get 1 - CaptureResult.CONTROL_AF_TRIGGER_START or 2 - CaptureResult.CONTROL_AF_STATE_PASSIVE_FOCUSED

Question is : what is the difference in my code? Why do i get 0 in one case and 1 or 2 in another?

Upvotes: 3

Views: 1253

Answers (1)

Stinky
Stinky

Reputation: 36

I know this is an old question, but i just ran into the same issue. Read through the Android docs about ControlAfState (AF = Auto Focus for those who are unaware, like I was). If AutoFocus Mode (afMode) is set to AF_MODE_OFF you will get the ControlAfState of Inactive.

Android CaptureResult.CONTROL_AF_STATE

Upvotes: 1

Related Questions