Android Zxing 二维码添加闪光灯的功能:
设置开关:
findViewById(R.id.ll_qrcode_flash).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO 开灯
if (!isOpen) {
((TextView)findViewById(R.id.flash_state)).setText("on");
CameraManager.get().enableFlash();
isOpen = true;
} else { // 关灯
((TextView)findViewById(R.id.flash_state)).setText("off");
CameraManager.get().disableFlash();
isOpen = false;
}
}
});
if(isOpen) {
((TextView)findViewById(R.id.flash_state)).setText("off");
CameraManager.get().disableFlash();
isOpen = false;
}
最后是用来开关的 方法 添加在 CameraManager 类中:
public void enableFlash(){
FlashlightManager.enableFlashlight();
try {
if (context.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_CAMERA_FLASH)) {
Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void disableFlash(){
FlashlightManager.enableFlashlight();
try {
if (context.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_CAMERA_FLASH)) {
Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
}
} catch (Exception e) {
e.printStackTrace();
}
}