2014-02-24 29 views
1

有沒有辦法檢查一旦你試圖打開手電筒,如果它已經工作或沒有?如何檢查手電筒是否打開?

我使用:

p.setFlashMode(Parameters.FLASH_MODE_TORCH); 
cam.setParameters(p); 
cam.startPreview(); 

要打開相機。這適用於大多數手機,但不適用於所有手機,所以我需要知道它是否有效。

編輯:只是要清楚,我需要知道如果打開閃光燈實際上是否有效。有時你需要使用FLASH_MODE_ON代替FLASH_MODE_TRUE,有時你需要使用FLASH_MODE_ON即使

List<String> flashModes = p.getSupportedFlashModes(); 
flashModes.contains(Parameters.FLASH_MODE_TORCH) 

返回true。

感謝您的任何幫助。

+0

退房此,http://stackoverflow.com/questions/6068803/how-turn-on-camera-flash-light-programmatically-in-android – InnocentKiller

+0

喜答案給出,請看看,並訪問http://www.androidhive.info/2013/04/android-developing-flashlight-application/更多 –

+0

@InnocentKiller謝謝,我已經看過那個鏈接,但我可以在那裏看到的方式可以讓你知道,如果打開燈已經工作或沒有。 – BlueJam

回答

1

首先,你需要檢查設備是否支持手電筒:

context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); 

然後你就可以安全地假設它會當你開始預覽被打開。

+0

感謝您的回覆,但這似乎並不總能奏效,但有些手機需要使用FLASH_MODE_ON。 – BlueJam

+0

這是爲了檢查設備是否具有可用的閃光燈模式。 – Niko

1
camera.getParameters().getFlashMode().equals("torch") 

返回true手電筒是