权限添加:
<uses-permissionandroid:name="android.permission.FLASHLIGHT"/>
<uses-permissionandroid:name="android.permission.CAMERA"/>
<uses-permissionandroid:name="android.hardware.camera"/>
public void onControlFlash(View view) {
Log.i(infoStr, "start flash switch");
if (!open) {
turnLightOn();
} else {
turnLightOff();
}
}
public void turnLightOn() {
camera = Camera.open();
if (camera == null) {
Log.e(errorStr, "Not support Camera");
return;
}
Parameters parameters = camera.getParameters();
if (parameters == null) {
Log.e(errorStr, "get camera parameters failed");
return;
}
List<String> flashModesList = parameters.getSupportedFlashModes();
// Check if camera flash exists
if (flashModesList == null) {
Log.e(errorStr, "camera flash not exists");
return;
}
String flashMode = parameters.getFlashMode();
Log.i(infoStr, "The flashMode is " + flashMode);
if (!Parameters.FLASH_MODE_TORCH.equals(flashMode)
&& flashModesList.contains(Parameters.FLASH_MODE_TORCH)) {
// Turn on the flash
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH); // open
camera.setParameters(parameters);
open = true;
} else {
Log.e(errorStr, "Current status is open or not support flash");
return;
}
}
public void turnLightOff() {
if (camera == null) {
Log.e(errorStr, "Not support Camera");
return;
}
Parameters parameters = camera.getParameters();
if (parameters == null) {
Log.e(errorStr, "get camera parameters failed");
return;
}
List<String> flashModesList = parameters.getSupportedFlashModes();
// Check if camera flash exists
if (flashModesList == null) {
Log.e(errorStr, "camera flash not exists");
return;
}
String flashMode = parameters.getFlashMode();
if (!Parameters.FLASH_MODE_OFF.equals(flashMode)
&& flashModesList.contains(Parameters.FLASH_MODE_OFF)) {
// Turn off the flash
parameters.setFlashMode(Parameters.FLASH_MODE_OFF); // open
camera.setParameters(parameters);
camera.release();
open = false;
} else {
Log.e(errorStr, "Current status is off or not support camera");
return;
}
}
Reference
http://bbs.youkuaiyun.com/topics/390212391
http://www.cnblogs.com/xingfuzzhd/p/3360633.html