CWAC - do not capture image when flash mode is ON on s5

335 Views Asked by At

I am using CWAC camera lib to capture images. Camera does not capture image when flash mode set as ON setFlashMode(Parameters.FLASH_MODE_ON); on s5.

I have also tried this using demo provided with library.Just flash appears and nothing happens. For subsequent capture action it throws exception,the stack trace is using demo :

3-25 16:11:23.058  23419-23419/com.commonsware.cwac.camera.demo E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.commonsware.cwac.camera.demo, PID: 23419
java.lang.IllegalStateException: Preview mode must have started before you can take a picture
        at com.commonsware.cwac.camera.CameraView.takePicture(CameraView.java:331)
        at com.commonsware.cwac.camera.CameraFragment.takePicture(CameraFragment.java:162)
        at com.commonsware.cwac.camera.demo.DemoCameraFragment.takeSimplePicture(DemoCameraFragment.java:242)
        at com.commonsware.cwac.camera.demo.DemoCameraFragment.onOptionsItemSelected(DemoCameraFragment.java:129)
        at android.app.Fragment.performOptionsItemSelected(Fragment.java:1806)
        at android.app.FragmentManagerImpl.dispatchOptionsItemSelected(FragmentManager.java:1978)
        at android.app.Activity.onMenuItemSelected(Activity.java:2711)
        at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:1094)
        at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735)
        at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:152)
        at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874)
        at com.android.internal.view.menu.ActionMenuView.invokeItem(ActionMenuView.java:645)
        at com.android.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:210)
        at android.view.View.performClick(View.java:4637)
        at android.view.View$PerformClick.run(View.java:19422)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5586)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
        at dalvik.system.NativeStart.main(Native Method)

How can be solved this issue?

onPictureTaken(byte[] data, Camera camera)

of PictureTransactionCallback does not get invoked in this case.

Device : Samsung Galaxy S5, android 4.4.2

Thanks :-)

1

There are 1 best solutions below

0
On

It also happened to me. The reason why is because I have provided a SimpleCameraHost which overrides the method useSingleShotMode which returns always true.

I just return it as false then I don´t see this problem again.

    @Override
    public boolean useSingleShotMode() {
        return false;
    }