如何检查相机闪光灯是打开还是关闭?

时间:2014-04-25 13:30:21

标签: android flash camera

我想创建一个应用程序来控制相机闪光灯,所以当我点击一个按钮时,闪光灯应该打开,如果没有,或者如果它打开则关闭,但应用程序没有工作,我不喜欢#39;知道错误在哪里,这是我的代码:

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;

    }
}