Question

I want to create an app to control the camera flash, so when I click a button the flash should turned on if its not, or turned off if its turned on, but the app didn't worked and I don't know where is the error, here is my code:

public class MainActivity extends Activity {

    Button b;
    Camera camera;
    Camera.Parameters ps;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);

        b = (Button) this.findViewById(R.id.b);

        if(getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)){

                b.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub

                        ps = camera.getParameters();

                        if(ps.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_OFF)){

                            camera = Camera.open();
                            Parameters p = camera.getParameters();
                            p.setFlashMode(Parameters.FLASH_MODE_TORCH);
                            camera.setParameters(p);
                            camera.startPreview();
                            b.setText("Turn off");
                        }

                        else if(ps.getFlashMode().equals(android.hardware.Camera.Parameters.FLASH_MODE_ON)){

                            camera = Camera.open();
                            Parameters p = camera.getParameters();
                            p.setFlashMode(Parameters.FLASH_MODE_OFF);
                            camera.setParameters(p);
                            camera.stopPreview();
                            b.setText("Turn on");
                        }

                        else if(ps.getFlashMode().equals(null)){

                            camera = Camera.open();
                            Parameters p = camera.getParameters();
                            p.setFlashMode(Parameters.FLASH_MODE_TORCH);
                            camera.setParameters(p);
                            camera.startPreview();
                            b.setText("Turn off");
                        }
                    }
                });
        }

        else
            return;

    }
}
Was it helpful?
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top