2014-04-25 134 views
0

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

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; 

    } 
} 

回答

相关问题