2014-04-25 132 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; 

    } 
} 

回答

相關問題