2012-10-19 69 views
3

我想在Android中以編程方式打開相機flash light(不帶相機預覽)。我搜索了它,但我發現的幫助沒有在我的三星Galaxy ACE上工作。如何打開和關閉設備閃光燈?

通過使用此代碼可以打開幾秒鐘後,它會自動關閉,無需在UI上執行任何操作。如果我試圖再次開啓力量關閉。

private void turnOn() { 

    clicked = true;  
    mCamera = Camera.open(); 
    Parameters params = mCamera.getParameters(); 
    params.setFlashMode(Parameters.FLASH_MODE_ON); 
    mCamera.setParameters(params); 
    mCamera.startPreview(); 
    mCamera.autoFocus(new AutoFocusCallback() { 
     public void onAutoFocus(boolean success, Camera camera) { 
     } 
    }); 
} 

對於關掉

private void turnOff() { 
    clicked = false;   
    if (mCamera != null) { 
     mCamera.stopPreview(); 
     mCamera.release(); 
    } 
} 

說過這些清單權限

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.FLASHLIGHT" /> 

<uses-feature android:name="android.hardware.camera" /> 
<uses-feature android:name="android.hardware.camera.autofocus" /> 
<uses-feature android:name="android.hardware.camera.flash" /> 

任何機構可以告訴我怎麼打開閃光燈很長一段時間高達使用點擊關閉按鈕。它是否需要任何第三方庫?我在Google play Tiny flash中看到了這個應用程序。

從我開機後它進入關閉2 sec我沒有得到什麼問題。

+0

檢查此stackoverflow問題http://stackoverflow.com/questions/6068803/how-turn-on-only-camera-flash-light-programmatically-in-android –

+1

@Satya我看到那裏,但沒有用.. –

回答

-1

壞消息: 根據文檔Android攝像頭需要intialized面視圖開始預覽 好消息: 它不能是全屏幕或可見

我的expirience到目前爲止即開始預覽需要激活閃光燈(但我不能說所有的設備)

如果你需要一些例子如何激活預覽,並可能隱藏在覆蓋後面, 看看javaocr庫(見演示 - 有2個android應用程序,還有攝像頭管理庫在單獨的項目 - 你可以抓住它)

https://sourceforge.net/projects/javaocr/

+0

如何將預覽添加到代碼中我在問題中發佈的內容。如果你有任何與此有關的東西,請在這裏發帖.. –

+0

請參閱編輯 - 參考示例projectz已到位 –

1

試試這個

//Turn on 
camera = Camera.open(); 
Parameters p = camera.getParameters(); 
p.setFlashMode(Parameters.FLASH_MODE_TORCH); 
camera.setParameters(p); 
camera.startPreview(); 

//Turn off 
camera = Camera.open(); 
Parameters p = camera.getParameters(); 
p.setFlashMode(Parameters.FLASH_MODE_OFF); 
camera.setParameters(p); 
camera.stopPreview(); 
+0

我也試過這樣也沒有成功... –

+0

發佈您的AndroidManifest.xml – user1475122

+0

我正在編輯我的問題與清單代碼 –

0

@RajaReddy PolamReddy,

我使用三星S3 LTE(4G)。您只需要將Parameters.FLASH_MODE_ON更改爲Parameters.FLASH_MODE_TORCH。

它適用於我。