关于android打开闪光灯的一些小事
在这篇文章中。
添加权限
<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.autofocus"/>
判断是否有闪光灯
//初始化
Camera camera = Camera.open();
camera.startPreview();
//判断
public boolean lightOn(boolean flag) {
try {
Camera.Parameters parameters = camera.getParameters();
String flashMode = parameters.getFlashMode();
if (flashMode.equals(android.hardware.Camera.Parameters.FLASH_MODE_TORCH)) {
return true;
} else {
return false;
}
} catch (Exception e) {
return false;
}
打开的方法
public void Open() {
//异常处理一定要加,否则Camera打开失败的话程序会崩溃
try {
camera = Camera.open();
} catch (Exception e) {
Toast.makeText(getBaseContext(), "Camera被占用,请先关闭", Toast.LENGTH_SHORT).show();
}
if(camera != null)
{
//打开闪光灯
camera.startPreview();
Camera.Parameters parameter = camera.getParameters();
parameter.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameter);
}
}
关闭的方法:
public void Close()
{
if (camera != null)
{
//关闭
camera.getParameters().setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(camera.getParameters());
camera.stopPreview();
camera.release();
camera = null;
}
}
闪光灯开光的判断:
/**
* 闪光灯开关
*/
public void flashlight() {
if (isFlashlightOn(false)) {
Close();
camera = null;
} else {
Open();
}
}