2013-12-09 2 views
0

나는 플래시에 문제가 있습니다. 2 초 후 플래시를 켜면 플래시가 자동으로 꺼집니다. 나는 왜 그렇게 행동하는지 모르겠다. 누구든지 나를 도와주세요. 플래시 떨어져 내가 이미이 시도플래시가 android에서 이끌어졌습니다

public void cameraFlashOff() { 
try { 
    camera.stopPreview(); 
    camera.release(); 
} catch (Exception e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

} 

답변

0
package com.mkyong.android; 

import android.app.Activity; 
import android.content.Context; 
import android.content.pm.PackageManager; 
import android.hardware.Camera; 
import android.hardware.Camera.Parameters; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class FlashLightActivity extends Activity { 

    //flag to detect flash is on or off 
    private boolean isLighOn = false; 

    private Camera camera; 

    private Button button; 

    @Override 
    protected void onStop() { 
     super.onStop(); 

     if (camera != null) { 
      camera.release(); 
     } 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     button = (Button) findViewById(R.id.buttonFlashlight); 

     Context context = this; 
     PackageManager pm = context.getPackageManager(); 

     // if device support camera? 
     if (!pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) { 
      Log.e("err", "Device has no camera!"); 
      return; 
     } 

     camera = Camera.open(); 
     final Parameters p = camera.getParameters(); 

     button.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 

       if (isLighOn) { 

        Log.i("info", "torch is turn off!"); 

        p.setFlashMode(Parameters.FLASH_MODE_OFF); 
        camera.setParameters(p); 
        camera.stopPreview(); 
        isLighOn = false; 

       } else { 

        Log.i("info", "torch is turn on!"); 

        p.setFlashMode(Parameters.FLASH_MODE_TORCH); 

        camera.setParameters(p); 
        camera.startPreview(); 
        isLighOn = true; 

       } 

      } 
     }); 

    } 
} 
+0

다음 코드 사용에 대한

public void cameraFlashOn() { try { camera = Camera.open(); Parameters params = camera.getParameters(); params.setFlashMode(Parameters.FLASH_MODE_ON); camera.setParameters(params); camera.startPreview(); camera.autoFocus(new AutoFocusCallback() { public void onAutoFocus(boolean success, Camera camera) { } }); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } 

. 그러나 모든 장치에서 FLASH_MODE_TORCH를 사용할 수있는 것은 아닙니다. 은하계는 플래시를 열 수 없습니다. – user484848